2015-11-19 4 views
0

Я создал приложение ASP.NET MVC и успешно работал. Однако, когда я опубликовал его в IIS, я не могу получить доступ к веб-сервису. Я имею в виду, когда я ввожу какой-то URL-адрес контента (например, «http://localhost/MyApp/Contents/SomePage.html»), он успешно работает, , но когда я ввожу URL-адрес api («http://localhost/MyApp/api/SomeController/SomeMethode»), я получаю ошибку 404.2. [Когда я ввел такой URL-адрес, когда он был опубликован, («http://localhost:5092/api/SomeController/SomeMethode»), он показал мне результат метода]Публикация приложения на IIS: разрывы веб-API

Большое спасибо и извините за плохой английский.

UPDATE Спасибо за ответы, я попробовал оба из них (в комментарии и в ответе), и это не сработало. На самом деле, я пытался решить это 4 часа, и я просто не мог. Поэтому, как и любой сердитый парень, я удалил публикацию и опубликовал ее снова (точно так же, как перезагрузка компьютера, когда он застрял), и я не знаю почему, но теперь это работает.

Еще раз спасибо, и жаль снова за плохой английский.

+0

ли эта помощь? http://forums.iis.net/t/1190786.aspx?Error+404+2+ISAPI+and+CGI+list+settings+restrictions+list+settings+on+Web+Server –

ответ

0

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); 
} 
Смежные вопросы