WebAPI在生产中返回404s

时间:2016-05-10 12:44:16

标签: c# asp.net iis asp.net-web-api

我知道这个问题 很多 的其他问题表面看起来可能相同,但我相当确定我的情况略有不同。我在API调用的生产环境中遇到404错误,并尝试了以下所有操作:

  • <remove name="UrlRoutingModule-4.0"/> <add name="UrlRoutingModule-4.0" path="*" verb="*" type="System.Web.Routing.UrlRoutingModule" preCondition=""/>
  • <modules runAllManagedModulesForAllRequests="true">
  • <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

在线查看了大多数潜在的解决方案之后,我发现大多数人的错误信息都是这样的:

Error

我的不同之处是左栏中的处理程序部分。我反而提到了System.Web.Http.WebHost.HttpControllerHandler,这表明它与API有关。

我尝试点击的网址是https://website.com/api/discounts/validate,我的路由配置如下:

public class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "ApiDefault",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional });
    }
}

Register方法的最后,我的Global.asax.cs会调用Application_Start。同样,这一切都适用于我们的开发和QA环境。

0 个答案:

没有答案