2010-09-19 51 views
0

我有一個WCF客戶端,它具有截取SOAP請求的自定義行爲。 在客戶端的BeforeSendRequest中,我獲取SOAP請求並將它作爲參數傳遞給另一個WS。另一個WS將SOAP信封發佈到客戶端想要調用的實際服務上,並將SOAP Response返回給客戶端。 所以在BeforeSendRequest中,中間服務將真實的SOAP響應作爲字符串返回給客戶端。設置從SOAP信封響應客戶端

public object BeforeSendRequest(ref System.ServiceModel.Channels.Message request, IClientChannel channel) 
{ 
    string soapResponse = myotherProxy.CallService(request.ToString()); 
    return null; 
} 

如何設置返回的SOAP響應(soapResponse)作爲客戶端的真實響應?

希望有人能幫助:)

謝謝 Adrya

回答

1

你可以「soapResponse」保存到檢查的成員變量,並設置它放回afterReceiveReply。

但是你爲什麼要僞造這個服務的電話呢?難道你只是打電話給其他服務 而不必做檢查員的欺騙?

+0

謝謝:)但如何設置這個SOAPEnvelope作爲字符串來回答這是一個消息?我必須這樣做,因爲這就是項目...(在不同的服務上發送來自不同客戶端的消息,但是在發送到myotherProxy.CallService之前,它會執行一些檢查,並且只在檢查確定時才允許調用) – Adrya 2010-09-20 05:26:45

+0

您可以製作你的CallService方法會返回一個SOAP消息嗎?或者您可以嘗試從肥皂字符串中刪除消息。 (請參閱http://msdn.microsoft.com/zh-CN/library/system.web.services.description.message(v = VS.90).aspx) – JamesMLV 2010-09-20 18:08:03