2008-09-30 245 views
15

我有一個思考,我需要訪問具有WSE 2.0安全性的SOAP Web服務。我已經得到了所有生成的C#代理(這是從Microsoft.Web.Services2.WebServicesClientProtocol派生),我在申請證書,但是當我調用一個方法我得到一個錯誤:如何在調用Web服務時解決HTTP狀態405「方法不允許」

System.Net.WebException : The request failed with HTTP status 405: Method Not Allowed. 
    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) 
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 

我已經做了一些Google搜索,看起來這是一個服務器配置問題。但是這個Web服務被許多客戶端沒有任何問題地使用(Web服務由新西蘭電信提供,所以它必須被正確配置,我相信它是用Java編寫的)

任何人都可以對此有所瞭解問題?

回答

18

好的,找到問題所在。我試圖調用.wsdl url而不是.asmx url。 Doh!

0

嗯那些其他客戶也使​​用C#/ .NET?

方法不允許 - >這可能是一個REST服務,而不是SOAP Web服務嗎?

+0

如果行吟詩人rclients也在使用.NET不知道。先查 這是一個SOAP的Web服務。 – Muxa 2008-09-30 01:34:36

+0

如果生成的代理從WSDL開始,它將成爲一個SOAP Web服務 – Kev 2008-09-30 01:55:37

4

我有同樣的問題,但在細節上有所不同:

我們使用的是沒有足夠的文件(的.asmx)部分的URL。在瀏覽器中調用Url是可以的。它也在一個簡單的客戶端通過Visual Studio設置URL。 但它沒有工作動態設置Url!它給出了相同的405錯誤。

最後我們發現將文件部分添加到Web Service Url解決了這個問題。 也許.Net框架的錯誤?

4

我發現這是由於WCF未安裝在IIS上。最主要的是必須在IIS中映射.svc擴展名See MSDN here.使用ServiceModelReg工具完成安裝。您總是需要驗證WCF是否已安裝,並且在您獲得新計算機或重新安裝IIS時,.svc將映射到IIS中。

0

MethodNotAllowedEquivalent於HTTP狀態405 MethodNotAllowed指示請求方法(POST或GET)不允許對所請求的資源。

問題是在您的enpoint uri不是完整或正確的地址wcf - .scv 檢查您的proxy.enpoint或wcf client.enpoint uri是正確的。

0

在我的情況下,問題是應用程序配置錯誤地形成/調用: 在配置服務的URL是使用「本地主機」作爲域名,但真正的主機名不同於我叫的URL :(所以我改變了「本地主機」,在配置到域名thah我在URL中使用。That`s一切!

相關問題