【发布时间】:2011-07-19 16:23:31
【问题描述】:
我有一个 .NET 4.0 WCF REST 服务(用于生成和验证产品密钥),我使用 Arvixe(通过 Visual Studio 中的 Web 部署)在我的主机上设置了该服务。在我的本地 Windows 7 机器上,它从 IIS 运行良好,但在我的主机上,除了基本服务 URL 之外,我得到了 404 错误。例如:
- “http://www.mydomain.com/LicensingServer/” - 在浏览器请求返回响应(带或不带查询字符串参数)时按预期工作
- “http://www.mydomain.com/LicensingServer/help” - 在 web.config 中打开默认 WCf 帮助页面时返回 404
- “http://www.mydomain.com/LicensingServer/validate” - 从浏览器请求返回的 404(带或不带查询字符串参数)
我的方法定义为:
[WebGet(UriTemplate = "?bla={bla}&etc={etc}")]
public Stream GetLicenseKey(string bla, string etc)
[WebGet(UriTemplate = "/validate?item={item}")]
public Stream ValidateLicense(string item,)
我的 Global.ascx 有:
RouteTable.Routes.Add(new ServiceRoute("", new WebServiceHostFactory(), typeof(LicensingService)));
我的 web.config 几乎是向导生成的标准模板,但我已添加:
runAllManagedModulesForAllRequests="true"
我尝试在 web.config 中为“.svc”(IIS 管理器中已经存在这个)、“.*”和“*”添加几个新的处理程序,但没有一个帮助。我还尝试按照 Arvixe 论坛中的建议添加一个带有 prefix="http://www.mydomain.com/" 的 baseAddressPrefixFilter,但这也没什么区别。
我也打开了 WCFTrace 日志记录,但到目前为止我从服务器获取日志文件一直没有成功,当我下载它时它显示为一个空的 0b 文件,但在服务器上显示为 280kb。
我猜这只是一个简单的配置问题,但我已经没有想法了。我不明白为什么它在我的本地(非常基本的安装)IIS 上运行良好,但在我的主机上却没有。
我意识到在 stackoverflow 上还有其他问题,但我已经提出了大量问题并尝试了许多建议但没有解决这个问题。许多解决方案都与将处理程序添加到我尝试过的 web.config 相关。
谁能告诉我哪里出了问题或告诉我下一步该往哪里看?
谢谢。
【问题讨论】: