解決SOAPCLIENT訪問WebSerivce外網發布端口


貓用vs2010寫了一個webservice,並寫了一個盤點程序客戶端,
PDA盤點機用C#開發,筆記本用VFP開發,發布在本地局域網IIS服務器,用了兩年一直很穩定。后面倉庫搬遷,需要外網進行訪問,在路由器上設置端口映射1008。
MSsoapInit 將URL網址改成 http://外網IP:1008/netbookserver/Service.asmx?wsdl

結果一直報錯,無法訪問,

用端口查看工具,發現客戶端一直訪問的是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連接。


                             -- 分享給大家  加菲貓:-)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM