解决SOAPCLIENT访问WebSerivce外网发布端口

猫用vs2010写了一个webservice,并写了一个盘点程序客户端,
PDA盘点机用C#开发,笔记本用VFP开发,发布在本地局域网IIS服务器,用了两年一直很稳定。后面仓库搬迁,需要外网进行访问,在路由器上设置端口映射1008。
MSsoapInit 将URL网址改成 http://外网IP:1008/netbookserver/Service.asmx?wsdl

结果一直报错,无法访问,

解决SOAPCLIENT访问WebSerivce外网发布端口

用端口查看工具,发现客户端一直访问的是80端口,后面不得已采用临时解决方案,每台笔记本做好本地端口映射。
盘点程序配置文件改成 http://外网IP:80/service.asxm?wdsl 
ProtMap程序将127.0.0.1:80 映射为外网IP:1008 还是很不稳定,但起码能用。
翻阅很多资料,发现问题出在EndPoint上面,但一直不得其法,今天终于找到SoapClient 修改EndPoint在哪里了
代码如下
        oSOAP=Createobject("MSSOAP.soapclient30")
        oSOAP.MSSoapInit("外网IP","Service","ServiceSoap")
        oSOAP.ConnectorProperty("EndPointURL")="外网IP:1008/netbookserver/Service.asmx?wsdl"
  oSOAP.服务器上函数()


        下面的表格提供了一个属性清单

属性 描述
AuthPassword 端点认证用的口令。
AuthUser 端点认证用的用户名。
EndPointURL 端点的URL。
ProxyPassword 代理认证的口令。
ProxyPort 代理服务器使用的端口。
ProxyServer 代理服务器的主机名或IP地址。
ProxyUser 代理认证的用户名。
SoapAction HTTP头部中SoapAction中的值。这一属性只能从低级的API中设定,如果使用SoapClient接口中的ConnectorProperty属性(高级API)设置该属性,它就会被忽略。
SSLClientCertificateName 如果存在,则该字符串标明用于SSL协议中的客户端证书。其语法为: SSLClientCertificateName [CURRENT_USER | LOCAL_MACHINE\[store-name\]]证书名,其缺省的名字为 CURRENT_USER\MY。
Timeout HttpConnector的超时时间,这一时间是以毫秒计算的。
UseProxy 一个类型为布尔型的属性,表明是否使用代理服务器。缺省情况下,这一属性的值被设定为False,表明无需使用代理服务器。如果要使用代服务器,需要将该属性的值设置为True。如果将该属性的值设置为True, 而又没有设置ProxyServer属性,HttpConnector将使用IE中设置的代理服器。HttpConnector会忽略IE中的“不使用代理服务器”设置。
UseSSL  表明是否使用了SSL的布尔型值。如果该属性被设置为True,则无论WSDL中是否指定了HTTP或HTTPS,HttpConnector对象都使用SSL连接。
 如果该属性的值被设置为False,则只有在WSDL中指定了HTTPS的情况下, HttpConnector对象才会使用SSL连接。


                             -- 分享给大家  加菲猫:-)

解决SOAPCLIENT访问WebSerivce外网发布端口

上一篇:操作系统——进程之间的通信


下一篇:Ext JS treegrid 发生的在tree上增加itemclick 与在其它列上增加actioncolumn 发生事件冲突(event conflict)的解决办法