WCF HTTP 错误 404.17 - 未找到 请求的内容似乎是脚本,不会由静态文件处理程序提供

Posted

技术标签:

【中文标题】WCF HTTP 错误 404.17 - 未找到 请求的内容似乎是脚本,不会由静态文件处理程序提供【英文标题】:WCF HTTP Error 404.17 - Not Found The requested content appears to be script and will not be served by the static file handler 【发布时间】:2013-06-07 11:09:23 【问题描述】:

我为解决 WCF 的 404.17 问题做了各种尝试,但都没有奏效

开发环境VS 2008 Team System,.NET Framework 3.5,OS Windows 7.0,IIS Application pool v2.0 classic。

我安装了 C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg

我使用打开 Windows 功能启用了 Windows 通信 HTTP 激活

IIS 中的处理程序映射

svc-ISAPI-2.0 *.svc 已启用未指定 IsapiModule 已继承 svc-ISAPI-4.0_32bit *.svc 已启用未指定 IsapiModule 已继承 svc-ISAPI-4.0_64bit *.svc Enabled Unspecified IsapiModule 继承

我无法将 AppPool 更改为集成模式,因为应用程序在没有经典模式的情况下无法工作,我有 asmx webservices,它们都可以访问。它的 WCF 导致了问题。谁能帮我解决这个 404.17 问题

<system.serviceModel>
                         <behaviors>
                             <serviceBehaviors>
                                 <behavior name="Solution1.WebApp.CallMonitorServiceBehavior">
                                     <serviceMetadata httpGetEnabled="true" />
                                     <serviceDebug includeExceptionDetailInFaults="false" />
                                 </behavior>
                                 <behavior name="Solution1.WebApp.Service1Behavior">
                                     <serviceMetadata httpGetEnabled="true" />
                                     <serviceDebug includeExceptionDetailInFaults="false" />
                                 </behavior>
                             </serviceBehaviors>
                         </behaviors>
                         <services>
                             <service behaviorConfiguration="Solution1.WebApp.CallMonitorServiceBehavior"
                                 name="Solution1.WebApp.CallMonitorService">
                                 <endpoint address="" binding="wsHttpBinding" contract="Solution1.WebApp.ICallMonitorService">
                                     <identity>
                                         <dns value="localhost" />
                                     </identity>
                                 </endpoint>
                                 <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
                             </service>
                             <service behaviorConfiguration="Solution1.WebApp.Service1Behavior"
                                 name="Solution1.WebApp.Service1">
                                 <endpoint address="" binding="wsHttpBinding" contract="Solution1.WebApp.IService1">
                                     <identity>
                                         <dns value="localhost" />
                                     </identity>
                                 </endpoint>
                                 <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
                             </service>
                         </services>
                     </system.serviceModel>

【问题讨论】:

【参考方案1】:

尝试从 Windows 功能激活 WCF 服务。转到“控制面板\程序\程序和功能”,然后单击“打开或关闭 Windows 功能”并检查 wcf 服务,如附图所示。

【讨论】:

在它说 WCF HTTP 激活已启用的问题中,是否还需要启用其他服务才能使其正常工作?【参考方案2】:

尝试将 WCF 注册到 IIS

导航到“C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation”

并执行

 servicemodelreg -i

安装它们

【讨论】:

以上是关于WCF HTTP 错误 404.17 - 未找到 请求的内容似乎是脚本,不会由静态文件处理程序提供的主要内容,如果未能解决你的问题,请参考以下文章

IIS 发布WCF报404.17 请求内容是脚本错误

在IIS上抛出异常的WCF托管(没有权限和HTTP错误404.3 - 未找到)

HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。

HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理

从同一主机上的子域访问时未找到 WCF 错误

HTTP错误:404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。