【问题标题】:How to solve HTTP status 405 "Method Not Allowed" when calling Web Services调用Web服务时如何解决HTTP状态405“Method Not Allowed”
【发布时间】:2008-09-30 01:26:16
【问题描述】:

我有一个情景,我需要访问具有 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编写的)

谁能解释一下这个问题?

【问题讨论】:

    标签: c# .net web-services wse2.0


    【解决方案1】:

    好的,找到问题所在了。我试图调用 .wsdl url 而不是 .asmx url。 呵呵!

    【讨论】:

    • 我试图在没有服务名称 (x.asmx) 的情况下调用,我只留下了带有基本目录的 url,谢谢
    【解决方案2】:

    我发现这是由于 IIS 上没有安装 WCF。主要是.svc扩展名必须映射到IISSee MSDN here.使用ServiceModelReg工具完成安装。每当您获得新机器或重新安装 IIS 时,您总是需要验证 WCF 是否已安装并且 .svc 是否已映射到 IIS。

    【讨论】:

      【解决方案3】:

      我有同样的问题,但细节不同:

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

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

      【讨论】:

        【解决方案4】:

        您需要启用 HTTP 激活

        转到控制面板 > Windows 功能 > .NET Framework 4.5 高级服务 > WCF 服务 > HTTP 激活

        【讨论】:

          【解决方案5】:

          嗯,其他客户端也使用 C#/.NET 吗?

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

          【讨论】:

          • 不知道其他客户端是否也在使用.NET。将检查它是一个 SOAP 网络服务。
          • 如果代理是从 WSDL 生成的,那么它将是一个 SOAP Web 服务。
          【解决方案6】:

          就我而言,问题在于应用配置的格式/调用不正确: 在配置中,服务 url 使用“localhost”作为域名,但真正的主机名与我调用的 URL 不同:(所以我将配置中的“localhost”更改为我在 URL 中使用的域名。就是这样!

          【讨论】:

            【解决方案7】:

            MethodNotAllowed 等效于 HTTP 状态 405。MethodNotAllowed 表示请求的资源上不允许使用请求方法(POST 或 GET)。

            问题在于您的 enpoint uri 不是 wcf 的完整或正确地址 - .scv 检查您的 proxy.enpoint 或 wcf client.enpoint uri 是否正确。

            【讨论】:

              猜你喜欢
              • 2021-01-21
              • 1970-01-01
              • 2018-06-29
              • 2014-08-31
              • 2013-10-10
              • 1970-01-01
              • 1970-01-01
              • 2018-06-18
              • 2017-03-25
              相关资源
              最近更新 更多