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

Mux*_*uxa 17 .net c# web-services wse2.0

我需要访问具有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)
Run Code Online (Sandbox Code Playgroud)

我做了一些谷歌搜索,看来这是一个服务器配置问题.然而,这个Web服务使用很多客户端没有任何问题(Web服务由新西兰电信提供,所以它必须正确配置.我相信它是用Java编写的)

任何人都可以对这个问题有所了解吗?

Mux*_*uxa 19

好的,发现问题所在.我试图调用.wsdl网址而不是.asmx网址.卫生署!


A-D*_*ubb 5

我发现这是由于 IIS 上没有安装 WCF。最重要的是 .svc 扩展名必须在 IIS 中映射,请参阅 MSDN 此处。使用 ServiceModelReg 工具完成安装。每当您获得新机器或重新安装 IIS 时,您总是希望验证 WCF 是否已安装,并且 .svc 是否已映射到 IIS 中。