IIS 5.1中的WCF用作纯文本文件

时间:2011-05-12 09:15:45

标签: wcf iis

我只是在我的开发环境中设置了一个简单的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文件没有得到正确的服务。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

如果servicemodelreg无效,请检查.svc是否设置了ISAPI映射。

转到网站属性的“主目录”选项卡,选择“配置...”

如果列表中没有.svc,请使用以下参数进行设置:

  • 可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
  • 扩展名:.svc
  • 限制为:GET,HEAD,POST,DEBUG
  • 脚本引擎:已勾选