基本情况是 delphi开发的soap服务端和客户端程序。服务端放在iss的可执行目录下。 只是简单实现了一个返回字符串的接口函数。 当客户端在本机(有delphi开发环境)执行没有问题。 在局域网其他机器上可以用ie打开服务的exe文件,并出现服务接口信息。但是执行客户端程序,调用那个接口函数的时候报地址错误,不知道是什么原因?

解决方案 »

  1.   

    1、确认客户端的url是否正确,服务端路径变化,客户端也要更改;
    2、服务端程序是否有注册?在initializaiton
     InvRegistry.RegisterInterFace(TypeInfo(IYourInterFace));
     invRegistry.RegisterInvokableClass(TYourClass);
      

  2.   

    ---------------URL写的是IP地址,客户端在开发的机器上执行是正常的,在其他机器上才报访问非法的地址错误。
    服务端注册应该是自动生成的吧。我是用向导生成的接口。
      

  3.   

    你只要檢查服務端程序是否有如下代碼就可以了。
    initializaiton 
    InvRegistry.RegisterInterFace(TypeInfo(IYourInterFace)); 
    invRegistry.RegisterInvokableClass(TYourClass);
    若有,你通過ie查看wsdl是否有你需要的接口
      

  4.   

    InvRegistry.RegisterInterFace(TypeInfo(IYourInterFace)); 
    这个在..Intf.pas文件里invRegistry.RegisterInvokableClass(TYourClass); 
    这个在..Impl.pas文件里
    http://..../pMyTest2.exe/wsdl 可以看到2条记录,第一就我写的接口 (另外说明一下,我在同一台机器上执行客户端是正常的)
      

  5.   


    在服務端你有運行你的exe嗎?若沒有,先運行一下,關閉後,再在客戶端請求服務,看是否正常。
    做這個動作,是想確認,程序在服務端是否被注冊了。猜測可能是注冊問題,導致在服務端無法找到函數,而報地址錯誤。
      

  6.   

    服务程序是没有界面的,运行时出现DOS窗体后,就一闪而过了!在其他机器上运行客户端程序,在执行调用方法时候 还是报 Access violation at address 00c4958c.Write of address 00c4958c在同开发的这台机器上,客户端是正常的!调用也正常。另外:我把delphi自带的例子,也是这样的情况。
      

  7.   

    按照 unsigned 的說法, 你在client端做檢查,看看是否正常獲取接口。
    我說的那種驗證方式未必是正確的。
      

  8.   


    ----------------客户端怎么做检查呢! 怎么指定是否获取接口成功! 另一台机器是没有delphi的。
    另一台机器上的IE 输入wsdl是有返回的正常.现在怀疑是不是我的DELPHI有问题,连联机的例子都报同样的错
      

  9.   

    delphi 开发的soap cgi程序,发布到其他机器上,除了执行权限,还需要配置些什么!
      

  10.   

    web服務器iis配置好就可以了。
      

  11.   

    网站正常可以访问,我在IIS管理器中点‘浏览’都报404错误(找不到文件)需要安装 ActivePerl
      

  12.   


    delphi7开发的soap发布到win2003 IIS6.0上好像有问题啊!
      

  13.   

    我开发的soap只支持xp,不支持win2003!
      哎!只有不了了之!
      

  14.   

    http://hi.baidu.com/woainiyuefei/blog/item/d6640d19d557f70d35fa41ac.html