2009-07-16 214 views
3

首先這是關於網絡服務的第三個問題,我非常感謝guyz幫助我,但還有一些東西是不對的 這裏是我已經得到的代碼從礦山經典網頁服務asp

Set oXmlHTTP = CreateObject("Microsoft.XMLHTTP") 
oXmlHTTP.Open "POST", "http://www.oursite.com/WebServices/ourService.asmx?WSDL", False 

oXmlHTTP.setRequestHeader "Content-Type", "application/soap+xml; charset=utf-8" 
oXmlHTTP.setRequestHeader "SOAPAction", "http://ourNameSpace/ourFunction" 

SOAPRequest = _ 
    "<?xml version=""1.0"" encoding=""utf-8""?>" &_ 
    "<soap12:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope"">" &_ 
    "<soap12:Body>" &_ 
     "<ourFunction xmlns=""http://ourNameSpace/"">" &_ 
     "<var1>" & Session("userid") & "</var1>" &_ 
     "<var2>" & Session("internetid") & "</var2>" &_ 
     "</ourFunction>" &_ 
    "</soap12:Body>" &_ 
    "</soap12:Envelope>" 

oXmlHTTP.send SOAPRequest 

問題現在我的web服務鏈接

http://buergerserviceschul.niedersachsen.de/modules/id/public/webservice/V4_00/rpc_lit/?wsdl 

當我給調用Web服務提供的所有細節和所有必要的東西,我仍無法得到來自這個程序的任何輸入都是令人沮喪的ING。 我的意思是我什麼也沒有,空的回答,我得到的,而如果我用老辦法,我建議不落實,其使用SOAP客戶端即

Set oSOAP = Server.CreateObject("MSSOAP.SoapClient30") 
oSOAP.ClientProperty("ServerHTTPRequest") = True 

現在這樣我ATLEAST得到一個會話ID,但我再次不能進一步即使去使用這個程序, 所以guyz我停留在這個問題

我需要調用函數和得到的回報XML,但我沒有得到回報什麼

無論怎樣我打電話該服務使其不作出迴應,但如果那樣的話,那麼它就會有giv如果我在代碼中犯了任何錯誤,它會發生錯誤。

好心幫我出來這方面 我會非常感謝你的這個好處。 謝謝

回答

2

請勿使用「?WSDL」。這只是爲了檢索WSDL。

另外,即使在VBSCRIPT中,也不要有史以來通過字符串連接構建XML。始終使用XML API來創建XML。


我認識到,仍然使用傳統ASP的許多人沒有多少選擇。 (*)不過,你應該歡迎任何機會不寫更多的VBSCRIPT,有人將不得不維護(甚至你)。相反,編寫一小段C#代碼將Web服務公開爲COM對象。你可以使用普通的「添加服務引用」技術,但VBSCRIPT會將其視爲一個普通的COM對象。我會看看我能否找到一個例子。 (*)也許如果我們開始稱它爲「蹩腳,臭味,ASP」,管理層會更快地擺脫它嗎?但也許不是,然後我們會被卡住這個名字。

+0

+1用於呼叫另一個庫執行Web服務調用。 – 2009-07-16 15:05:24

0

最終,我與約翰同意,溝在VBScript中執行此操作,使用C#dll執行此工作並公開COM消息使用ASP。

然而,有些事情你可能會看到。首先不要使用Microsoft.XMLHTTP,它不是線程安全的。改爲使用CreateObject("MSXML2.ServerXMLHTTP")

要診斷出什麼問題,請使用Fiddler。當使用SOAP啓動提琴手時,然後在命令行上發出

ProxyCfg -u 

。你會看到在提琴手中的服務器之間的確切對話。如果您有另一個這個SOAP接口正常工作的例子,那麼使用fiddler來檢查HTTP會話。

現在切換到您的新代碼並檢查正在生成的請求。您應該能夠根據這些數據確定對標題和XML所做的更改。

記住關閉前小提琴手發出

Proxycfg -d 

+0

嘿guyz,我沒有asmx文件 我給了url 如果我刪除?wsdl那麼它不會運行 – chsab420 2009-07-17 11:30:26