关于MTS的问题(100分)

  • 主题发起人 主题发起人 oocoolie
  • 开始时间 开始时间
O

oocoolie

Unregistered / Unconfirmed
GUEST, unregistred user!

MTS object服务器组件,在本机客户调用时正常,但在远端调用时总出现interface
NOT support的错误,调用方法是先取得Iunknown接口,然后由as 取得其它接口。
会不会是安全配置有什么问题?
另外还想问一下要实现连接池的话是不是必须在每个组件的create事件中注册组件,我记
得李维的书上好象这样说过(针对MTS的远程数据模块)
 
这需要先进行主机认证的,也就是说,你调用组件的客户机现在登陆的帐号/密码要先到
服务器上面进行认证,如果没有这个帐号,那么fail
 
interface NOT support是指你取得的Iunknown接口不是你要AS的接口类型,而是
另外一种。就是说,从服务端取得的接口与客户端的不一样。
 
为什么会这样?我的classid并没有写错,我是把在服务器上运行得很好的代码拷贝到客户
端使用的,只是改了一个机器名
是不是由于没有正确连接到服务器上所以createremotecomobject读取了本地的相同名字
的coclass
 
你在客户端注册一下组件看看。
 
这需要导出组件,然后在客户端进行安装,而且需要进行主机认证的,也就是说,你调用组
件的客户机现在登陆的帐号/密码要先到服务器上面进行认证,如果没有这个帐号,
那么fail
 
在客户端进行安装?我这是server application啊
我在客户端注册.tlb文件不行?
如果确实需要认证的话就太麻烦了,不如用socket连接了
但如果用Tsocketconnection的话,如何使用MTS object?
我再加100分
 
采用tsocketconnection跟mts object并不冲突,采用tsocketconnection和tdcomconnection
,其后的根本区别表现在tdcomconnection有一个pool和轮询,而且如果采用tsocketconnection
的话也要有主机认证的。
 
不会吧,socketconnection使用的是tcp/ip连接
怎么会有主机认证?
tdcomconnection有一个pool和轮询?
不懂
pool是mts的功能啊
我其实想问的是,我在远端如果不想用一般的调用dcom的方法调用mts object
而是用tsocketconnection的话该怎么调用
譬如如果是mts data modle的话我们会用socketconnection先连接到远端服务器
然后取得其iappserver接口,再调用iappserver的方法与函数就行了
但mts object没有iappserver接口,只有自己定义的接口,怎么调用?

 
1.客户注册mts的tlb文件
2.客户登录网络,用户是mts服务器的nt合法用户
 
如果需要调用MTS object,我一般是在客户端先调用一个MTS datamodule形式的组件,
然后通过该组件调用MTS object类型的组件,直接用socketConnection好像没法调用
MTS object吧。实现连接池好像并不需要作什么特别的工作,至少我们没有做什么特
别的工作。
 
to hzb:
这样的效率怎么样?
如果这样的话为何不把函数直接放在iappserver上呢?
 
oocoolie兄:
狄克老兄的方法是正确的。
只有这样才能在您的客户计算机上有对应的注册信息!也只有这样才能在远程创建COM+对象
您应该试试!
希望能够对您有所帮助。
给分!
 
感觉上,在开发阶段执行效率还可以。这样的做法其实是李维提倡的,就是客户端只和
协调对象打交道,然后由协调对象调用其他的对象完成工作,不要把所有的东西都放在
一个对象里。
如何把函数直接放在iAppserver上?如果你创建的是一个MTS object,它默认的接口是
从IDispatch继承下来的,你看看有没有办法增加一个iAppserver的接口?另外,我觉得
MTS object不能通过SocketConnection来连接的原因在于MTS object没有MTS datamodule的
一个方法:UpdateRegistry,我想只有调用了该方法在注册表里写了相应信息后,
scktsrvr才能创建对应的对象。
 
to hzb:
我说的是在iappserver上直接加函数,然后在客户端用socketconnection.appserver
.function调用

 
多人接受答案了。
 
后退
顶部