19

我有一个需要访问具有 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)

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

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

4

7 回答 7

20

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

于 2008-10-06T00:24:48.370 回答
5

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

于 2011-03-02T20:29:58.883 回答
4

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

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

最后我们发现将文件部分添加到Web Service Url中解决了这个问题。也许是一个 .Net 框架错误?

于 2010-04-07T16:37:09.777 回答
3

您需要启用 HTTP 激活

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

于 2019-03-18T14:01:45.410 回答
0

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

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

于 2008-09-30T01:28:27.473 回答
0

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

于 2016-01-15T15:48:13.017 回答
-1

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

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

于 2013-05-31T07:57:32.743 回答