WCF.svc文件在IIS7.5.NET 4.0中用作纯文本-不在默认网站下

WCF.svc文件在IIS7.5.NET 4.0中用作纯文本-不在默认网站下,.net,wcf,iis-7.5,svc,.net,Wcf,Iis 7.5,Svc,最终更新:事实证明,这是因为DotNetNuke模块的压缩问题造成的。我必须添加到PageBlaster DNN模块,因此这不再是一个问题 我第一次将WCF svc文件部署到我的系统中,它以纯文本的形式呈现/提供给浏览器。它可以在本地主机上的我的开发环境中正常工作。您可以在这里看到问题: 该网站运行于Windows Server 2008 R2上的IIS 7.5.7600.16385上的集成应用程序池中的版本6.1 SP1(64位),该应用程序池使用.NET 4.0(我使用的是Entity F

最终更新:事实证明,这是因为DotNetNuke模块的压缩问题造成的。我必须添加到PageBlaster DNN模块,因此这不再是一个问题

我第一次将WCF svc文件部署到我的系统中,它以纯文本的形式呈现/提供给浏览器。它可以在本地主机上的我的开发环境中正常工作。您可以在这里看到问题:

该网站运行于Windows Server 2008 R2上的IIS 7.5.7600.16385上的集成应用程序池中的版本6.1 SP1(64位),该应用程序池使用.NET 4.0(我使用的是Entity Framework 4.2)

更新:在live server上,该站点被添加为一个网站(即不在默认网站下),而在我的开发环境中,DotNetNuke作为一个虚拟目录运行在默认网站下,它有自己的Web.config(我将其与live站点上的Web.config进行了比较,并且是相同的)

有趣的是,当我在live服务器上,浏览到默认网站中的test.svc文件时,它会工作()-但是PokerDIY.com网站下的文件不会()。所以我的默认网站似乎与其他网站有所不同

另一件有趣的事情:我删除了所有.svc处理程序映射,现在我可以得到“HTTP错误404.3-找不到”错误。所以处理程序映射正在拦截它,它只是没有对它做任何事情!我可以通过重新添加.svc处理程序映射将其恢复为静态文本

在进行了大量RTFMing之后,我检查的第一件事是MS文章中提到的处理程序映射:所有svc映射都在那里(svc integrated位于顶部)

我还按照重新安装了WCF,没有任何区别。使用Fiddler,我可以看到内容类型是“text/html”

我还能试什么

注意:ASMX Web服务、ASP.NET文件等都可以正常工作

更新:我的托管提供商建议我将服务所在的目录设置为虚拟目录,我不必在Dev中的本地计算机上这样做。因此,现在它使用父网站appool,至少它正在做一些事情-它会收到不同的错误。这听起来并不正确-为什么不由appool网站处理?我将.svc移到根()中,以将其从等式中删除)

我尝试过的其他事情: 将模块runAllManagedModulesForAllRequests=“false”更改为“true”(在my web.config中为false) %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet\u regiis.exe-ir

确保已启用应用程序服务器角色。

我的托管提供商表示,网站下的目录(“/framework”)需要配置为虚拟目录,并使用父应用程序池

当我这样做时,svc似乎得到了处理(并且我得到了另一组.NET错误)


但是,在我的开发环境中,子文件夹不是一个单独的虚拟目录-需要吗?

确保目录浏览也被“禁用”

直到现在我才听说过这一点-它没有安装,所以我按照安装并重新启动了它。我也查过了。不幸的是,这没有产生任何影响,问题仍然存在——但我认为这是在正确的道路上?一件可能相关的事情——我如何知道我使用的是什么版本的WCF?我在WCF 3文件夹(64位)中运行servicemodelreg-I命令,而不是在.net 4文件夹下运行。我不知道如何判断我正在使用的WCF版本(在这个阶段它是一个简单的测试服务)在IIS中托管的替代方法是在windows服务中自托管WCF服务。它非常简单,可以从图片中删除IIS。我就是这么做的。干杯,蒂姆:)谢谢蒂姆,但我需要访问httpcontext和DotNetNuke网站,所以我认为它需要在iis中。我不认为这是正确的信息-我的开发环境不是这样设置的。要从等式中删除子文件夹,我将一个.svc文件放入没有代码隐藏文件的站点根目录中-您可以在此处看到它-(它未被处理,显示为文本)