none
如何在引用web reference的方式下取得soap傳出與回傳的訊息 RRS feed

  • 問題

  • Hi all,

    小弟目前使用VS2008的web references的方式加入客戶的web service, 由於對方的成功與否訊息是透過交易結束後傳回的soap response訊息來得知, 但是我於web references下找不到任何有關的方式可以擷取soap傳回的資訊, 有任何解決的方法嗎? 感謝大家的幫忙!!!

     

    //einv_test為我的web references
    einv_test.SecurityHeader sh = new SPCC02.einv_test.SecurityHeader();
    //自訂的soap表頭加密
    sh.LoginStr = encode_soap("user_name", "password");
    einv_test.VenWebService ws = new SPCC02.einv_test.VenWebService();
    ws.SecurityHeaderValue = sh;
    //呼叫web service
    ws.webmethod(invoice);  
    


    2011年8月24日 上午 01:48

解答

  • 如果你想直接處理到 Web Service 的 SOAP 訊息,那唯一的方法大概就是實作 SoapExtension 了。

    http://msdn.microsoft.com/zh-tw/library/system.web.services.protocols.soapextension.aspx


    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure
    • 已標示為解答 no4eric 2011年8月24日 上午 07:43
    2011年8月24日 上午 02:09
    版主
  • 印象中,使用 SoapExtension 的話,可以捕捉到 client <-> server 所有的 SOAP 訊息,不限是哪個 SoapHttpClientProtocol 發出的。
    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure
    • 已標示為解答 no4eric 2011年8月24日 上午 07:43
    2011年8月24日 上午 06:42
    版主

所有回覆

  • ws.webmethod(invoice);  <--  這個方法沒有回傳值嗎?
    2011年8月24日 上午 01:54
  • 如果是您直接加入Web服務參考的話,是否可以請對方直接將結果return出來。

    string result = ws.webmethod(invoice);



    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2011年8月24日 上午 01:57
  • 沒有回傳值... 所以很傷腦筋, 過去在delphi世代都是利用HTTPRIO的物件去取得, 但是在C#就不清楚怎麼來處理了.... 
    2011年8月24日 上午 01:58
  • 如果你想直接處理到 Web Service 的 SOAP 訊息,那唯一的方法大概就是實作 SoapExtension 了。

    http://msdn.microsoft.com/zh-tw/library/system.web.services.protocols.soapextension.aspx


    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure
    • 已標示為解答 no4eric 2011年8月24日 上午 07:43
    2011年8月24日 上午 02:09
    版主
  • 如果ws.webmethod(invoice);沒有傳回值, 看看有沒有另外的方法可以查詢交易的結果
    2011年8月24日 上午 05:53
  • 抱歉, 小弟有個笨問題, 若是使用soapExtension, 原來的web references照樣引用, 只是將soapExtension套上去擷取訊息嗎?  
    2011年8月24日 上午 06:17
  • 必須要到網站上去查, 但是這樣的方式無法符合作業需求... 
    2011年8月24日 上午 06:18
  • 印象中,使用 SoapExtension 的話,可以捕捉到 client <-> server 所有的 SOAP 訊息,不限是哪個 SoapHttpClientProtocol 發出的。
    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure
    • 已標示為解答 no4eric 2011年8月24日 上午 07:43
    2011年8月24日 上午 06:42
    版主
  • 小弟目前有找到一個SoapExtension範本, 先貼出來供有需要的朋友參考, 我還在研究中, 卡在要如何套用到目前的專案裡.... XD

    http://www.codeproject.com/Articles/38986/Trace-SOAP-Request-Response-XML-with-TraceExtensio
    


    2011年8月24日 上午 06:51