我只是在我的开发环境中设置了一个简单的WCF服务,到目前为止,对于SOAP和JSONP请求,端点都正常工作。
我已经开始将此解决方案部署到IIS 5.1上托管的登台服务器(旧的,我知道,但请耐心等待),.svc
文件突然不再起作用了。并非IIS无法找到它们,而是将它们作为纯文本文件提供。
当我弹出.svc
文件时,这基本上就是我浏览器上显示的内容:
<%@ ServiceHost Language="C#" Debug="true" Service="service.myservice" CodeBehind="myservice.svc.cs" %>
现在我已经尝试了我在SO和其他网站上看到的所有解决方案(包括使用aspnet_regiis
在IIS上重新安装ASP.NET绑定并使用servicemodelreg.exe
恢复WCF ISAPI句柄),但它们都不起作用。
可能值得注意的一个怪癖是IIS 5.1正在服务于端口8000,因为Apache当前正在运行默认的80.这可能是罪魁祸首吗?我已经尝试运行servicemodelreg -s:myservice
试图直接点击我的应用路径,但它告诉我IIS:/localhost/myservice
上没有这样的应用(也许是因为它应该在IIS:/localhost:8000/myservice
上?我'我不确定。)
我已经确认我已经有一个功能强大的.NET 3.5框架,.aspx
文件可以正常运行。只是.svc
文件没有得到正确的服务。
有什么想法吗?
答案 0 :(得分:3)
如果servicemodelreg无效,请检查.svc是否设置了ISAPI映射。
转到网站属性的“主目录”选项卡,选择“配置...”
如果列表中没有.svc,请使用以下参数进行设置:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
.svc
GET,HEAD,POST,DEBUG