Windows 2003 Server中运行Midas中间层服务的问题
我们的系统是采用Delphi 5.0开发的三层结构系统,中间层采用Midas,并且制作成服务(Service)方式发布使用,客户端采用DCOM连接中间层,后台数据库为Sybase。该系统运行2年多了,都没有任何问题。中间层运行在Windows 2000 Server和Windows XP上均非常稳定。随着系统的升级换代,最近我讲服务器升级到了Windows 2003 Server,并将中间层程序安装了上去,安装步骤与过程均与2000 Server相同,不存在安装的问题。将服务启动后,客户端程序连接时,出现长时间的等待,没有响应。像往常如果是中间层的配置有问题,客户端在连接时很快就会返回错误提示,但现在是没有任何提示,直到连接超时才返回错误。在事件查看器中会发现这样的错误“服务器 {D4966410-0237-4CA0-97FE-E83267094C81} 没有在限定的时间内用 DCOM 注册。”,非常不解!
另外,值得注意的是,中间层作为服务(Service)运行时,会出现上述的问题,但是当我将中间层改为普通的EXE程序模式时,就一切正常。
注:根据李唯的系统篇中介绍,要将中间层作为服务运行,应当在注册表中该对象的GUID下添加“LocalService”项,其值设为该服务的服务名。我一直以来都是这样操作的。在2000中就一切正常,而在2003中,当这个项存在时就无法连接,删除这个项后,就一切正常(这时,事实上中间层就是以普通程序的方式运行的)。
我不清楚是不是Windows 2003 Server中对DCOM的调用做了什么修改还是怎么?希望有高手给予指点~~~