这可能是一个完全托管服务相关的问题,但我会在这里发布,以防它是一个更常见的问题。
我正在我的ASP.NET MVC 2网站上运行OData服务,它在我的笔记本电脑IIS上工作正常但是当我在Winhost上部署它到我的网站时,我在尝试访问.svc时遇到404资源未找到错误文件。
之前我有2个不同的身份验证,所以我得到了“System.InvalidOperationException:IIS指定的身份验证方案'基本,匿名'....”错误所以我知道那时处理程序正在尝试启动该服务。
修好后,我收到了“资源未找到错误”。
该服务位于/ Services文件夹中,但似乎并不重要。无论我把它放在哪里它总是给我404错误。我本地站点bin文件夹中的所有二进制文件都在我的远程站点bin文件夹中。
网站上的其他所有内容似乎都运行良好。
如果有人对此有解决方案,将非常感谢帮助。
答案 0 :(得分:8)
终于搞清楚了。由于我的站点是ASP.NET MVC 2站点,我需要忽略该服务的路由。否则,ASP.NET将开始为该URI寻找控制器。
所以我将routes.IgnoreRoute("Services/ServiceFilename.svc/{*pathInfo}");
添加到我的global.asax.cs
并解决了voilá问题。
虽然我不太明白为什么该服务可以在我的笔记本电脑IIS 7上运行而没有被忽略的路径。