【问题标题】:Publishing application to IIS: Web API breaks将应用程序发布到 IIS:Web API 中断
【发布时间】:2015-11-19 08:51:51
【问题描述】:

我已经构建了一个 Asp.Net MVC 应用程序,它运行成功。 但是,当我将它发布到 IIS 时,我无法访问 Web 服务。 我的意思是,当我输入一些内容的 url(例如“http://localhost/MyApp/Contents/SomePage.html”)时,它会成功运行, 但是当我输入 api 的 url ("http://localhost/MyApp/api/SomeController/SomeMethode") 我得到 404.2 错误。 [当我在取消发布时输入这样的网址时,(“http://localhost:5092/api/SomeController/SomeMethode”)它向我展示了该方法的结果]

非常感谢,抱歉英语不好。

更新 感谢您的答案,我尝试了它们(在评论和答案中)并且它没有工作。实际上,我试图解决它 4 个小时,但我无法解决。所以就像每个愤怒的人一样,我删除了发布并再次发布(就像在卡住时重新启动计算机一样),我不知道为什么,但现在它可以工作了。

再次感谢,再次抱歉英语不好。

【问题讨论】:

标签: asp.net-mvc iis asp.net-web-api


【解决方案1】:

MVC 路由不同于 WebApi 路由。

MVC:

RouteTable.Routes.MapHttpRoute(
      name: "DefaultApi",
      routeTemplate: "{controller}/{id}",
      defaults: new { id = System.Web.Http.RouteParameter.Optional }
 );

WebAPI

GlobalConfiguration.Configuration.Routes.MapHttpRoute(
     name: "DefaultApi",
     routeTemplate: "api/{controller}/{id}",
     defaults: new { id = System.Web.Http.RouteParameter.Optional }
   );

在您的 Global.asax 中

protected void Application_Start()
{
    GlobalConfiguration.Configure(WebApiConfig.Register);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
}

【讨论】:

    猜你喜欢
    • 2011-01-05
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 2019-07-19
    相关资源
    最近更新 更多