我工作的一个ASP.NET MVC 4的网站。 连同MVC的控制器,I有一个包含一个Ajax GET API接口一个API控制器。 当使用Visual Studio调试本地它完美。
然而,当我部署它作为一个Azure的网站,MVC控制器的工作,但API控制器不工作了。 当jQuery代码试图去实现它,它会返回类似这样的回复:
没有HTTP资源发现,请求URI“匹配http://example.com ”。
它看起来像至少路线的作品(否则,返回另一个404响应体)。
另外,我有部署为Azure的云服务的另一个纯MVC 4的Web API服务。 它完美的作品。 因此,我不知道是什么原因导致MVC网站里面的API失败? 谢谢!
检查这些东西,他们通常帮助:
- 请确保您的控制器类型是公众和ApiController派生
- 确保控制器被命名为“xxxxController”,其中xxxx是控制器的名称
在这种情况下,URL API / XXXX应该工作。
这是一个常见的问题。当一个MVC应用程序部署在IIS,这是通过调用您的Web API将改变暴露了REST服务的HTTP URL。 如果您的API控制器名为MyApiController,所以在生产环境现状,应该调用URL前添加应用程序名称。 这意味着/ API / MyApi将成为/ MyApp的/ API / MyApi。 MyApp的是你的网站(yourwebsite / MyApp的)的前缀。
我解决了这个问题。 我使用Telerik的数据访问我的ORM,该项目应该具有Copy Local
为True。
同样,如果他们似乎是第三方的dll或添加的NuGet的所有引用本地=真副本 。
您可以通过添加更容易地找到错误<customErrors mode="Off" />
里面的<system.web>
在Web.config文件。
文章来源: Web API interface works locally but gets 404 after deployed to Azure Website