最终更新:由于DotNetNuke模块的压缩问题,原来这是一个红鲱鱼。我不得不添加到PageBlaster DNN模块,所以这不再是一个问题。
我第一次将WCF svc文件部署到live website,并以纯文本形式呈现/提供给浏览器。它在localhost上的开发环境中工作正常。你可以在这里看到问题:
http://www.pokerdiy.com/test.svc
该网站在集成应用程序池中 Windows Server 2008 R2 版本6.1 SP1(64位)上的 IIS 7.5.7600.16385 上运行使用 .NET 4.0 (我使用的是Entity Framework 4.2)。
更新:在实时服务器上,该网站被添加为网站(即不在默认网站下),而在我的开发环境中,DotNetNuke作为默认网站下的虚拟目录运行使用它自己的web.config站点(我将其与实际站点上的站点进行比较并且相同)。
有趣的是,当我在实时服务器上并浏览到DEfault网站中的test.svc文件时,它可以工作(http://localhost/Test.svc) - 但是,PokerDIY.com网站下的那个没有( http://www.pokerdiy.com/test.svc)。所以我的默认网站似乎与其他网站有所不同?
另一个有趣的事情:我删除了所有.svc Handler Mappings,现在我可以得到“HTTP Error 404.3 - Not Found”错误。所以Handler Mappings正在拦截它,它只是没有做任何事情!我可以通过重新添加.svc Handler Mappings来恢复静态文本。
经过大量的RTFMing之后,我检查的第一件事就是根据MS文章的Handler Mappings:所有的svc映射都在那里(svc-integrated位于顶部per this article)
我也按照this article重新安装了WCF,没有任何区别。使用Fiddler我可以看到Content-Type是“text / html”
我还能尝试什么?
注意:ASMX webservices,ASP.NET文件等都可以正常工作。
更新:我的托管服务提供商建议我将服务所在的目录放入虚拟目录,我不需要在Dev的本地计算机上执行此操作。所以现在它使用父网站appool并且在leats它正在做某事 - 它得到一个不同的错误。这听起来不正确 - 为什么它不会被网站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 served as plain text file 404 when running .net 4 WCF service on IIS (no svc file)
答案 0 :(得分:2)
确保您已启用Application Server角色。
答案 1 :(得分:0)
我的托管服务提供商表示网站下的目录(“/ framework”)需要配置为虚拟目录并使用父AppPool。
当我这样做时,svc似乎确实得到了处理(我得到了另一组.NET错误)。
但是,在我的开发环境中,子文件夹不是一个单独的虚拟目录 - 是否需要?
答案 2 :(得分:0)
确保目录浏览也被“禁用”