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