网络API接口本地工作,但部署到Azure的网站后获得404(Web API interface w

2019-07-03 21:26发布

我工作的一个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失败? 谢谢!

Answer 1:

检查这些东西,他们通常帮助:

  1. 请确保您的控制器类型是公众和ApiController派生
  2. 确保控制器被命名为“xxxxController”,其中xxxx是控制器的名称

在这种情况下,URL API / XXXX应该工作。



Answer 2:

这是一个常见的问题。当一个MVC应用程序部署在IIS,这是通过调用您的Web API将改变暴露了REST服务的HTTP URL。 如果您的API控制器名为MyApiController,所以在生产环境现状,应该调用URL前添加应用程序名称。 这意味着/ API / MyApi将成为/ MyApp的/ API / MyApi。 MyApp的是你的网站(yourwebsite / MyApp的)的前缀。



Answer 3:

我解决了这个问题。 我使用Telerik的数据访问我的ORM,该项目应该具有Copy LocalTrue。

同样,如果他们似乎是第三方的dll或添加的NuGet的所有引用本地=真副本

您可以通过添加更容易地找到错误<customErrors mode="Off" />里面的<system.web>在Web.config文件。



文章来源: Web API interface works locally but gets 404 after deployed to Azure Website