MGO*_*wen 11 asp.net wcf http-status-code-404 iis-8
我从Windows Server 2003上的IIS 6移动.
我可以浏览.svc文件.如果我在浏览器中访问http://example.com/Service.svc,我会得到一个很好的标准"这是一个Windows©Communication Foundation服务"页面.
但我无法浏览任何方法 - 如果我在浏览器中访问http://example.com/Service.svc/Method?parameter=xyz,我会收到404错误.
有没有人见过这样的东西?任何想法或建议?
我想我可能会遇到类似的问题:IIS8上的WCF;*.svc处理程序映射不起作用
但症状是不同的(看起来他们根本看不到.svc文件)并且没有解决方案工作(我已经安装了WCF功能的Http Activation等).
MGO*_*wen 23
好吧,我放弃并支付微软250美元的支持.在技术人员的帮助下,我们找到了解决方案,昨晚确认它绝对是我们所有服务器的解决方案:我们在web.config中为WCF服务完全禁用了SSL:
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding>
<security mode="Transport" />
Run Code Online (Sandbox Code Playgroud)
"传输"是指传输层安全性(TLS是新的SSL)所以HTTPS.改为:
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding>
<security mode="None" />
Run Code Online (Sandbox Code Playgroud)
事实证明,WCF对您使用的是HTTP还是HTTPS非常敏感,如果您使用的是错误的,则不会产生任何有用的错误,只有404.
就我而言,旧服务器和新服务器都配置为始终使用HTTPS以确保安全性.但在新服务器上,SSL(TLS)加密在负载均衡器上终止.在这种情况下,加密仅发生在用户的浏览器和负载均衡器之间,我们的负载均衡器和Web服务器之间的流量是未加密的HTTP.
所以服务正在侦听HTTPS,当请求来自HTTP时,它完全忽略了它.
(所有其他关于在线类似问题的讨论都集中在卸载和重新安装IIS和ASP.NET以及WCF和HTTP激活等等,所以我希望这对某人有所帮助.如果你对MS堆栈有疑问,我建议MS支持没有及时回答.它肯定比浪费几个小时试图单独修复便宜得多.
Pra*_*ngh 13
请检查您的IIS是否添加了svc处理程序.
WCF服务不能在具有默认配置的IIS 8上运行,因为Web服务器不知道如何处理以.svc文件为目标的传入请求.你可以分两步教它:
Extension: .svc
MIME type: application/octet-stream

添加新的托管HTTP处理程序:
Request path: *.svc
Type: System.ServiceModel.Activation.HttpHandler
Name: svc-Integrated

刷新您的网站/ Web应用程序
参考文献:
http://gyorgybalassy.wordpress.com/2012/09/24/publishing-a-wcf-service-on-iis8/
http://proq.blogspot.hk/2012/09/wcf-on-iis-and-windows-8.html
| 归档时间: |
|
| 查看次数: |
18156 次 |
| 最近记录: |