(405)不允许的方法。 WCF WebService

时间:2016-03-01 13:25:02

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

简介:

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

数据:

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

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

- 启用或配置IIS

时,我可能做错了什么

请求:

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

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

我的配置:

- 安装IIS后我将DefaulAppPool更改为.NET Framework v4.0.30.319;管道模式:集成。 - 高级设置:加载用户个人资料=错误。

使用DefaultAppPool.Binding处理名为“WcfMicrocontrollerService”的新网站;键入:http,IP地址:,端口:80

此时我可以通过Web浏览器访问它,但是当我使用测试客户端将数据发送到服务时,我收到以下错误:“远程服务器返回了意外的响应:(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

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

1 个答案:

答案 0 :(得分:35)

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

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

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

  • 控制面板 - &gt;程序 - &gt;节目和特征&gt;打开或关闭Windows功能。在&#34; .Net Framework 3.5(Invlucdes .NET 2.0和3.0&#34;部分
  • 下)
  • 确保&#34; Windows Communication Foundation HTTP激活&#34;已开启。
  • 同时检查&#34; .NET Framerwork 4.x高级服务&#34;并且在&#34; WCF服务&#34;检查以确保此处也启用了HTTP激活。

这是该问题的图片,显示了.net 4.5的更改。 Features to turn on

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