三层开发,应用服务器这样的问题,怎么解决?(这回写清楚点) ( 积分: 100 )

  • 主题发起人 主题发起人 hh2001howlong
  • 开始时间 开始时间
H

hh2001howlong

Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的。我是三层。应用服务假设为A,我已经把A做成一个系统服务,而且已经运行了。而客户端假设B,此时B访问应用服务器的时候,作为系统服务运行的A并没有被用到,而是另外再激活一个A。
我A的程序是这样做的 先生成一个 TSysService = class(TService),然后 生成一个TMyRemoteDataModule = class(TRemoteDataModule, IMyRemoteDataModule)
TSysService里面我什么都没写,生成是怎么样就怎么样。(我是安照李老师的书上(分布式应用)做的三层应用服务器。)
TMyRemoteDataModule 里面是这样的:
initialization
TComponentFactory.Create(ComServer, TMyRemoteDataModule,
Class_MyRemoteDataModule, ciMultiInstance, tmApartment
[red]我要问的第一个问题是:我要怎么做才能使B访问应用服务器的时候用到已经作为系统服务启动的A,而不是另外再自己激活一个A啊?[/red]
而我现在用的这个由客户端激活的A,在应用服务器上过几秒钟会弹出来一个对话框
对话框是内容是这样的:
COM Server Warning
There are still active COM objects in this application.One or more clients may have
references to these objects,so manually closing this application may cause those client pplication(s) to fail.
Are you sure you want to close this application?
是 否
不管我选择那个结果都一样,客户端都会出现什么RPC错误,然后客户端就不能访问了。
[red][blue]第二个问题,这个对话框应该怎么把它取掉呢?[/red]
 
怎么没人回答?
我想应该在TSysService 的onExecute里启动应用程序服务器A吧
 
我也碰到这个问题?同样期待
 
我的中間層24*30天從不掉機. 你可以上QQ:43149565 群的[共享]中下載試試。
 
我也遇到这个问题了,把线程模型改为tmBoth,可以了.
 
后退
顶部