关于三层的简单问题,请大家一定帮忙啊!!(100分)

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

hanyel

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了个最简单的三层,就用控件DCOM和DATASETPROVIDER。设计中间遇到个很郁闷的问题。客户端不能正常启动服务端了!
开始遇到了一次,我重新注册了一个服务器,正常了,但是做到最后,我好象就把文件夹名字改了下,运行就不能正常启动服务器了,打开工程也一样,打开客户端的任何一个单元,就会自动试图启动服务器,然后就死掉了。
先运行服务器,就可以,一切正常,这个是为什么啊??
哪的设置有问题吗???请大家一定指教啊!!
 
每次
initialization
CoInitialize(nil);
finalization
CoUninitialize;
end.
 
你在设计时把那个Dcom连接关闭到。
不要连接,不然他打开一个单元就会去连接,如果连接不同他就有可能死。
设计时,最好连接断开。
在代码里写连接参数连接。
 
我改正过来了,DCOM连接关闭的,但是我试图打开DATAMOUDLE,就会自动去连接!依然会去自动连接。
还有
为什么我把客户的端的EXE 放到其他机子上,就不能运行了呢?
 
等待解答,高手指点啊
 
建议楼主得多学点原理的东西
COM服务程序运行后将进行COM注册,把地址什么信息都写了进去
你改了文件夹名称,路径对不上,引导启动不起来
你再运行了下COM服务程序,COM服务程序就又去做COM注册,覆盖掉原来的信息,包括地址路径等信息
这时候引导路径对得上了,客户端一访问主机,主机就让COM服务启动对应路径的程序
(你可以在运行窗口,输入DCOMCNFG,进入COM服务查看器查看你各COM程序注册的配置)
 
4楼:你把客户的端的EXE 放到其他机子上不行是因为COM程序开发出来需要手动更改COM服务的配置才能正常被其他机器访问,有时候还得考虑如何配置不让防火墙挡住,如果你用的是SOCKET那就不用做这些配置。
 
mywinner0101
如果用SOCKET,是不是非要用DELPHI自带的那个服务端应用程序啊
 
多人接受答案了。
 
后退
顶部