![](/img/trans.png)
[英]HTTP Error 405 Method not allowed while calling web api delete method?
[英]How to solve HTTP status 405 “Method Not Allowed” when calling Web Services
我需要访问具有WSE 2.0安全性的SOAP Web服务。 我已经获得了所有生成的c#代理(源自Microsoft.Web.Services2.WebServicesClientProtocol),我正在应用证书,但是当我调用方法时,我收到错误:
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)
我做了一些谷歌搜索,看来这是一个服务器配置问题。 然而,这个Web服务使用很多客户端没有任何问题(Web服务由新西兰电信提供,所以它必须正确配置。我相信它是用Java编写的)
任何人都可以对这个问题有所了解吗?
好的,发现问题所在。 我试图调用.wsdl网址而不是.asmx网址。 卫生署!
我有同样的问题,但细节不同:
我们使用的Url没有文件(.asmx)部分。 在浏览器中调用Url就可以了。 它也适用于通过Visual Studio设置URL的简单客户端。 但它没有动态设置Url! 它给出了相同的405错误。
最后,我们发现将文件部分添加到Web Service Url解决了这个问题。 也许是一个.Net框架错误?
我发现这是因为WCF没有安装在IIS上。 主要的是必须在IIS中映射.svc扩展名。请参阅此处的MSDN。 使用ServiceModelReg工具完成安装。 您总是希望验证是否已安装WCF,并且只要您获得新计算机或重新安装IIS,就会在IIS中映射.svc。
嗯那些其他客户也使用C#/ .NET?
方法不允许 - >这可能是REST服务,而不是SOAP Web服务吗?
在我的情况下,问题是app配置错误地形成/调用:在配置中服务URL使用“localhost”作为域名,但真正的主机名与我调用的URL不同:(所以我在配置中更改了“localhost”到域名thah我在URL中使用。这就是全部!
您需要启用HTTP激活
转到“控制面板”>“Windows功能”>“.NET Framework 4.5高级服务”>“WCF服务”>“HTTP激活”
MethodNotAllowed等效于HTTP状态405. MethodNotAllowed指示在请求的资源上不允许请求方法(POST或GET)。
问题在于你的upoint是不完整或正确的wcf地址 - .scv检查你的proxy.enpoint或wcf client.enpoint uri是否正确。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.