我收到了这个错误:
404.17 - The requested content appears to be script and will not be served by the static file handler
我在Windows 8,VS2013上运行IIS 8.5。我的应用程序池设置为.NET 4(我相信从.Net 2迁移到.Net 4是导致问题的原因)。我的服务代码是.NET 3.5。
我检查过.NET 3.5和4.5都是作为功能启用的,以及ISAPI扩展和过滤器的可扩展性。 我试过了:
然后我终于通过启用" HTTP激活"来修复它。 (按照建议here)。
我的问题是:这个错误究竟意味着什么?我通过盲目搜索网络并尝试各种建议基本上解决了这个问题,但如果我完全理解这个错误告诉我的话,我可能会更快地做到这一点。
编辑:
在对这篇文章发表的有益和建设性的评论之后,我想我会试着澄清我在这里问的确切内容。
显然,错误消息本身确实有意义(在某种程度上)。 static
处理程序无法运行script
。那么,HTTP激活的作用是什么?为什么ServiceModelReg会有帮助?从.Net2移动到.Net4时,为什么会出现此问题?
答案 0 :(得分:0)
错误消息告诉您:
静态文件处理程序即将提供您的源代码 服务器端脚本而不是执行它的另一个处理程序。那 可能不是你想要发生的事情,所以我抛出异常 代替。
此错误表示您的处理程序未正确设置。在你的情况下,你的服务请求应该被Http Activation Service(我猜一个IHttpModule)接收,但是因为它不是(模块没有激活),它最终被静态处理文件处理程序作为最终后备。
ServiceModelReg安装或重新安装正确的WCF组件。显然,如果你没有完全设置WCF,这可能会解决这个问题。
Http激活模块(System.ServiceModel.Activation.HttpModule)已在machine.config文件中注册。 .NET 2.0和.NET 4.0具有单独的machine.configs。两个.NET版本也分别存在Http Activation功能。