![](/img/trans.png)
[英]Client found response content type of 'text/html', but expected 'text/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.