簡體   English   中英

.NET Web服務客戶端-客戶端發現響應內容類型為“文本/純文本”,但預期為“文本/ xml”

[英].NET Web Service Client - Client found response content type of 'text/plain', but expected 'text/xml'

我有一個ASP.NET網頁,該網頁具有對SOAP WSDL的Web參考。 如果我調用與此WSDL相關聯的方法(這些方法位於另一台服務器上),則一切正常。 但是,我希望能夠動態更改WSDL指向的端點地址。 原因是我們為不同的組托管同一組Web服務,並且我們希望跟蹤誰在使用Web服務。 因此,每個集合都有其自己的URL。

我嘗試將我的soap客戶端對象上的“ Url”屬性更改為其他端點,但是當我這樣做時,方法將返回此錯誤:

客戶發現響應內容類型為“文本/純文本”,但預期為“文本/ xml”

我以為Url屬性會混淆代理類,以為我現在正在使用REST Web服務?

這是我的一些代碼:


mySoapNamespace.mySoapClient soapClient = new mySoapNamespace.mySoapClient();

//next I try to change the endpoint URL of the WSDL, misguided? ...
soapClient.Url = "http://a_different_url/my_soap_server.wsdl";
string result = soapClient.myTestMethod(); 
Response.Write(result);

這就是我得到錯誤的地方。 有誰知道動態更改SOAP調用端點的修補程序或其他方法?

好的! 我發現自己在做什么錯。 當我更改Web參考的Url屬性時,需要指定代碼端點(即WSDL的wsdl:port部分中的soap:address)。 我正在指定WSDL本身:

soapClient.Url =“ http://a_different_url/my_soap_server.wsdl ”;

...實際上,我應該一直在引用它背后的PHP腳本。

soapClient.Url =“ http://a_different_url/my_soap_server.php ”;

通過查看web.config文件,可以清楚地看到代理類將我的Url設置為什么(導入WSDL時)。 它有一個列出網址的appSettings部分。 我注意到它指向的是代碼文件,而不是遠程服務器上的WSDL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM