菜鸟问简单的三层结构问题,给100分 ( 积分: 50 )

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

huyongxiao

Unregistered / Unconfirmed
GUEST, unregistred user!
刚学三层结构.做了个简单的程序,用ADOQuery1,DataSetProvider1做了中间层,DCOMConnection1,ClientDataSet1做的客户端程序.
在自己的XP系统下运行应用层和客户端程序调试通过.
当把应用层EXE放到另一台XP电脑上后,再在自己的电脑上运行客户端程序时却出现拒绝访问的出错提示,请问是什么原因,如何解决?
 
刚学三层结构.做了个简单的程序,用ADOQuery1,DataSetProvider1做了中间层,DCOMConnection1,ClientDataSet1做的客户端程序.
在自己的XP系统下运行应用层和客户端程序调试通过.
当把应用层EXE放到另一台XP电脑上后,再在自己的电脑上运行客户端程序时却出现拒绝访问的出错提示,请问是什么原因,如何解决?
 
Dcom方式不太好
你不如采用WebService方式 只要你的服务器开着,全世界任何可以上网的地方都能用你的客户端
 
dcom配置过
1.运行 dcomcnfg
2.选择你的选程数据对象
2.配置"安全",添加everyone
3.身份标识改为交互式用户
4.注册midas.dll
 
用DCOM方式时,客户端必须用服务器上预先建立的帐户登录(用户名、密码必须在服务器上预先建立)
 
to 7030
已经按你说的配置过了,可是好象还是无法连通.
 
搬个椅子听课
 
用Webconnecting 好用,可以透过防火墙 防问速度还可以,注册也方便.
 
加入同意一个域中就可以了
 
不要用dcom啦,根据中间层GUID动态创建服务端。代码类似:
function getServer(RemoteIP: String) : oleVariant
const sGUID = //服务端GUID
var
obj : Variant;
begin
obj := createRemoteComobiect(RemoteIP,sGUID).as IDispatch;
Result:= obj;
end;

//客户端调用
procedure aaaa;
var
s : String;
begin
........
s:= getServer('192.168.0.20').XXXX //XXXX为服务端定义的方法,返回值类型String(举例说明)
.........
end;
 
那么,CDS怎样连接这个oleVariant呢?
 
to ggabcdef:
CDS有一个Data属性。
 
我指的不是这个意思。
我想问: cds.remoteServer := getServer('192.168.0.20').??
 
用socketconnection
 
对,用socketconnection
 
请教:我有个socketconnection程序,在D6中调试接正常,在D7中出项[red][/red]没有为本地系统配置DNS服务器,(10013) on API 'connect'[black][/black]错误,不知道为什么?
 
用sockconnection
 
支持用sockconnection,需要运行DELPHI安装目录BIN下的scktsrvr.exe
 
后退
顶部