调用Web服务时如何解决HTTP状态405"不允许使用方法"

时间:2020-03-06 14:54:13  来源:igfitidea点击:

我感到很孤单,我需要使用WSE 2.0安全性来访问SOAP Web服务。我已经生成了所有生成的cproxies(它们是从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服务(该服务是由新西兰电信提供的,因此必须正确配置。我相信它是用Java编写的)

任何人都可以阐明这个问题吗?

解决方案

嗯,那些其他客户端也在使用C#/。NET吗?

不允许使用方法->可以是REST服务,而不是SOAP Web服务吗?

好的,找到问题所在了。我正在尝试调用.wsdl网址而不是.asmx网址。
h!

我遇到了同样的问题,但细节有所不同:

我们使用的网址没有文件(.asmx)部分。在浏览器中调用网址是可以的。它也可以在一个简单的客户端中通过Visual Studio设置URL。
但是它不能有效地动态设置网址!它给出了相同的405错误。

最后,我们发现将文件部分添加到Web Service Url解决了该问题。
可能是.NET Framework错误?