不知道简单还是难,我第一次接触三层,大家就帮帮忙吧(100分)

  • 主题发起人 主题发起人 terry_lzs
  • 开始时间 开始时间
T

terry_lzs

Unregistered / Unconfirmed
GUEST, unregistred user!
早上起来想想该学习学习了,于是抱起《delphi5从入门到精通》,三次的第一个例子就
卡着了,书上说很简单,不过我搞不定。
我按照书上说的在Object Repository中添加了一个远程数据模块,然后向模块中添加table
组件并将它与数据库相连启动了,最后添加一个datasetprovider并设置它的属性dataset=
table1;constraints:=true;然后就运行,书上说系统自动注册,反正我什么也没瞧见。运行
时就一闪就完了。
接着作客户端,往form上放一个dcomconnection组件,servername下拉列表中有刚才注册的
东西*^-^*,书上接着说将connected属性设置为true,将出现服务器窗体,说明客户机已经
启动了服务器,结果问题来了,出现错误提示“RPC不处在监听状态”,好了,现在需要各位
帮帮忙了,告诉我这个新手这是怎么回事?
顺便推荐几本好的关于多层的书
 
看李维著的《Delphi 5.x分布式多层应用系统篇》,讲三层结构的。
 
版本太老了建议先运行rpcss.exe
 
我找到原因了,嘻嘻
不过,还是需要大家给我讲讲连接协议,既然可以支持这么多种,那么它们各有什么优缺点
怎么选择要用哪种连接协议?
 
什么原因呀?
 
TDCOMConnection 适用 Windows,Win98 都内置了 DCOM,无需其他服务。
TScoketConnection 适用通过 TCP/IP 连接,但中间层必须运行服务程序, Delphi 自带了
一个,在 VCL 目录下的 ScktSrvr.dpr。
TCorbaConnection 可用于跨平台的 Corba 连接。
TWebConnection 使用 Http 通信,可透过防火墙。
 
上面这个程序开始时我为了方便调试,将应用服务器和客户端都放在一台机上,一切正常
现在将客户端放到其他机子上一运行就出现非法操作,这是怎么回事?
 
错误提示:
Exception EINTFCastError in module CLIENT.EXE at 000773DB Interface
not supported
 
好像是没有注册吧
 
你需要在DComconnection中的ComputerName中填写你的应用服务器程序运行的机器的名,
而且还得配置Dcom,如果用SocketConnection连接,需要在应用服务器机器上运行SocketSvr。
 
如果应用服务器在 Win98 上运行的话必须先启动应用服务器。
在 NT 上可自动启动。
 
我安装了Dcom98,而且也先启动应用服务器了,客户端还是出错,提示内存不足无法运行
改程序,可是内存明明还够运行几个大的程序啊
 
服务器方有配置好DCOM吗?
有没有设置好权限?
 
我将权限设置成了the world,结果运行时错误提示“Inteface not supported”
 
我自己搞定了,不过还是很谢谢大家,以后还请各位多多指教
 
terry_lzs
怎么搞定的,我也碰到了
 
后退
顶部