0

最后更新:事实证明这是由于 DotNetNuke 模块的压缩问题而引起的。我必须添加到 PageBlaster DNN 模块,所以这不再是问题。

我第一次将 WCF svc 文件部署到我的实时网站,它以纯文本形式呈现/提供给浏览器。它在本地主机上的开发环境中运行良好。你可以在这里看到问题:

http://www.pokerdiy.com/test.svc

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

更新:在实时服务器上,该站点被添加为网站(即不在默认网站下),而在我的开发环境中,DotNetNuke 在默认网站下作为虚拟目录运行,并具有自己的 web.config(我与现场网站上的相比,并且是相同的)。

有趣的是,当我在实时服务器上并浏览到 DEfault 网站中的 test.svc 文件时,它可以工作(http://localhost/Test.svc) - 但是,PokerDIY.com 网站下的那个没有(http://www.pokerdiy.com/test.svc)。因此,我的默认网站似乎与其他网站有所不同?

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

经过大量的 RTFMing,我检查的第一件事是根据 MS 文章的处理程序映射:所有 svc 映射都在那里(svc-integrated 在顶部根据本文

我还按照本文重新安装了 WCF ,没有任何区别。使用 Fiddler 我可以看到 Content-Type 是“text/html”

我还能尝试什么?

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

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

我尝试过的其他事情:将模块 runAllManagedModulesForAllRequests="false" 更改为“true”(在我的 web.config 中为false)%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir WCF in IIS 5.1 在 IIS 上运行 .net 4 WCF 服务时用作纯文本文件404(无 svc 文件)

4

3 回答 3

2

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

于 2011-12-18T06:30:03.690 回答
0

我的托管服务提供商说网站下的目录(“/framework”)需要配置为虚拟目录并使用父 AppPool。

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

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

于 2011-12-20T02:46:32.177 回答
0

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

于 2014-11-27T09:13:09.633 回答