我的問題是類似SOAP請求客戶端web服務用vb.net
How do I send/Receive SOAP messages usiung .NET
我想調用Web服務,但不喜歡的鏈接顯示above.What我所做的就是,創建方式與WSDL URL服務引用(在Windows應用程序與一個按鈕點擊事件)
http://ipaddress:port/My/MyService?wsdl
已經創建了一個客戶對象
Dim objProxy As MyClient = New MyClient()
我已填充的objrequest和objreqheader使用下面的方法,(分配字符串值,而不是XML)
objreqheader.id = "abcd"
最後以下行調用服務
objresponsehead = objProxy.myoperation(objreqheader, objrequest, objresp)
從參考VB,這是我的手術公共職能
Public Function myoperation(ByVal RequestHeader As AFA.RequestHeaderType, ByVal GetTransactionDetailsReq As AFA.GetTransactionDetailsReqType, <System.Runtime.InteropServices.OutAttribute()> ByRef GetTransactionDetailsResp As AFA.GetTransactionDetailsRespType) As AFA.ResponseHeaderType
Dim inValue As AFA.getTransactionDetailsRequest = New AFA.getTransactionDetailsRequest()
inValue.RequestHeader = RequestHeader
inValue.GetTransactionDetailsReq = GetTransactionDetailsReq
Dim retVal As AFA.getTransactionDetailsResponse = CType(Me,AFA.myservice).getTransactionDetails(inValue)
GetTransactionDetailsResp = retVal.GetTransactionDetailsResp
Return retVal.ResponseHeader
End Function
問題是我的objresp是空的。沒有產生異常,objresponsehead被填充爲「abcd」。該服務未被調用。我不知道如何從應用程序配置文件中獲取跟蹤文件,以調試問題。我記得,當我第一次使用它時,出現了一個錯誤「沒有可以接受消息的端點監聽」,但現在沒有錯誤。
我在應用程序配置文件中添加了以下內容以獲取跟蹤信息,以瞭解發生了什麼。但沒有看到任何生成的跟蹤文件(trace.log)。
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add type="System.Diagnostics.TextWriterTraceListener" name="TextWriter" initializeData="trace.log" />
</listeners>
</trace>
</system.diagnostics>
我檢查了objProxy的屬性,它具有基本的http綁定作爲屬性。 任何人都像這樣調用了這個服務?從soapui,響應是好的,我填充請求字段。
如何啓用跟蹤以查看請求將要發送的內容以及問題的位置。
起初,我得到了一個錯誤「了。在序列化消息getTransactionDetailsRequest的身體一個錯誤:‘有一個錯誤生成XML文檔。’請參閱的InnerException更多細節 - 。 - > System.InvalidOperationException:生成XML文檔時發生錯誤---> System.ServiceModel.Diagnostics.PlainXmlWriter + MaxSizeExceededException「。當我改變大小時,錯誤消失。但是,無法看到生成的任何日誌。 – Suresh 2011-12-28 12:17:26
忽略我上面的評論。 – Suresh 2011-12-29 09:28:31
我以前遇到的問題是響應不符合wsdl。這個,我使用soapui工具中的驗證響應選項進行檢查。有沒有什麼辦法可以在.net客戶端中生成與此相關的日誌?除了響應對象爲空,即使我能在跟蹤日誌中看到響應xml,我的.net客戶端中也沒有例外。 – Suresh 2011-12-29 15:57:56