【问题标题】:(405) Method Not Allowed. WCF WebService(405) 方法不允许。 WCF 网络服务
【发布时间】:2016-06-13 22:40:49
【问题描述】:

简介:

您好,我正在尝试在本地 IIS 7.5 服务器上设置 WCF Web 服务,但是在完成基本配置后,我无法使用 WinForms 测试客户端发送数据,并且它返回标题中提到的错误。 我已经在这个问题上搜索了类似的线程,但我没有找到任何适合我的问题。

数据:

-Wcf WebService 和测试客户端均由第三方提供

-他们已经在另一台服务器上工作,我正在使用相同的版本

-我在启用或配置 IIS 时可能做错了

请求:

-我需要知道我需要启用/禁用哪些 IIS 功能才能正确安装它,以便我可以使用 Wcf WebService。(如果是这样的话)。

-如何正确配置服务器以解决上述错误。

我的配置:

-安装 IIS 后,我将 DefaulAppPool 更改为 .NET Framework v4.0.30.319;流水线模式:集成。 -高级设置:加载用户配置文件 = False。

-使用 DefaultAppPool.Binding 创建了一个名为“WcfMicrocontrollerService”的新网站;类型:http,IP地址:,端口:80

此时我可以通过 Web 浏览器访问它,但是当我使用测试客户端将数据 POST 到服务时,我收到以下错误:“远程服务器返回意外响应:(405) 方法不允许。”

以下是 Fiddler 记录的发送的数据包: 发送:

POST http://192.168.0.102/MicroControllerComSvc.svc HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://tempuri.org/IMicroControllerComSvc/GetMicrocontrollerData"
Host: 192.168.0.102
Content-Length: 237
Expect: 100-continue
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetMicrocontrollerData xmlns="http://tempuri.org/"><microControllerData>1,1,1,1,2,2,1,0,100,300</microControllerData></GetMicrocontrollerData></s:Body></s:Envelope>

收到:

HTTP/1.1 405 Method Not Allowed
Cache-Control: private
Allow: GET, HEAD, OPTIONS, TRACE
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Tue, 01 Mar 2016 10:44:44 GMT
Content-Length: 5671

这是正文:https://dl.dropboxusercontent.com/u/2237590/405.html

这似乎表明我应该查看处理程序映射,但我不知道在那里编辑什么。

【问题讨论】:

    标签: asp.net web-services wcf iis http-status-code-405


    【解决方案1】:

    好的,在对您的问题进行了非常简短的搜索后,我发现了以下问题 WCF on IIS8; *.svc handler mapping doesn't work

    忽略关于 IIS 8 的问题,您运行的是 Windows 还是 Windows Server?

    如果您使用的是 Windows,请转到...

    • 控制面板 -> 程序 -> 程序和功能 > 打开或关闭 Windows 功能。在“.Net Framework 3.5(包括 .NET 2.0 和 3.0”部分)下
    • 确保“Windows Communication Foundation HTTP 激活”已打开。
    • 还要检查“.NET Framerwork 4.x 高级服务”和“WCF 服务”下的检查,以确保那里也启用了 HTTP 激活。

    这是该问题中的一张图片,显示了要进行的 .net 4.5 更改。 Features to turn on

    如果您使用的是 Windows Server,请尝试按照有关如何使用服务器管理器设置角色的问题的第一个答案。

    【讨论】:

    • 我已经设法让 Web 服务在另一台安装了 Windows 10(IIS 10) 的机器上运行,并在适用的情况下提供您的说明。但是,在 Windows 7 SP1 下,我只有 .Net Framework 3.5 选项,启用 HTTP 激活后出现 500.21 错误,但我不再卡住,应该能够自行解决问题。我找错地方了,永远也想不通。非常感谢!
    • 我很高兴这有帮助
    • 这真的很有帮助 - 在 Server 2016 Preview 5 下运行良好 - 我认为默认情况下安装了几乎所有功能。在全新安装 Server 2016 Standard 之后,这一点让我发疯了,我们都知道按计划工作时压力有多大:-)
    • 安装 HTTP 激活修复了我在将 WCF 移动到未安装 HTTP 激活的新 Web 服务器后遇到的 405 错误。谢谢!
    • 谢谢您,先生!在 Server 2016 上添加 HTTP 激活也是我的解决方法。
    猜你喜欢
    • 2011-01-13
    • 2017-10-10
    • 2016-08-07
    • 1970-01-01
    • 2014-07-17
    • 2012-10-25
    • 2014-03-30
    • 2012-04-21
    • 1970-01-01
    相关资源
    最近更新 更多