我用 Delphi 生成了一个 Service Application. 在这个项目添新建了一个 RemoteConnectionModule. 在RemoteConnectionModule里用 dbExpress的SQLConnection连接数据库.
一切组件的设置都正常.客户能连接上来. 可是.问题出现了. 按理说 Service Application 是一个服务程序, 可是客户连接时.好像没有使用这个 Service Application. 而是另外启动了一个程序. 而且我用代码检测了一下.  Service Application启动后,根本没有接受客户端的连接. 而是他的一个副本,作为一般的程序在运行.而且接受了连接. 请高手们帮我解决一下. 这是为什么,难道 Delphi 的Service Application是不能使用 RemoteConnectionModule? 我也看了李维的书里是样介绍应用可能使用远程连接的?为什么做出来的程序后,不能实现呢?

解决方案 »

  1.   

    执行:dcomcnfg
    然后配置该DCOM程序的属性,标识页,看看能不能设置为系统账户。
      

  2.   

    要让它以服务运行是比较简单的,只要找到并设置或LocalService项。
    [HKEY_CLASSES_ROOT\AppID\{%CLSID%}]
    @="%Description%"
    "LocalService"="%ServiceName%"GUID是你的组件的CLSID,ServiceName是你的服务的名称(在服务管理器当中可以看到)。如此就可以在DCOM当中配置为以系统账户启动。
    关键的问题这个时候的组件无当以普通的方式来访问(估计只能给系统类的服务程序进行访问,普通用户可能权限不足)