Проблемы отладки службы WCF Web Api REST

Поэтому я создал REST-сервис на основе веб-API WCF. Он отлично работает на моем местном IIS. Но когда я развернул его на внешнем сервере, он не работает.

В моем global.asax.cs я сопоставляю маршрут "MyRoute" с классом MyHandler. Поэтому, когда я захожу на http://localhost/MyApplication/MyRoute/MyResource я получаю правильный ответ.

Однако на внешнем сервере после развертывания, если я открываю http://localhost/MyApplication/MyRoute/MyResource в IE, я получаю "Internet Explorer не может отобразить веб-страницу" (FF = "Соединение было сброшено - соединение с сервером было сброшено во время страница загружалась ")

Если я введу недопустимое имя ресурса: http://localhost/MyApplication/MyRoute/adfasdf на внешнем сервере я получу тот же результат, что и локально: "Конечная точка не найдена".

Кроме того, я попытался удалить всю логику из метода в MyHandler, которому сопоставлен / MyRoute / MyResource, чтобы увидеть, что в этом коде было что-то, что вызывало сбой запроса, но результат остался.

Мое лучшее предположение, что проблема как-то связана с отображением маршрута.

Я был бы очень благодарен за помощь или в этом конкретном случае, который я имею, или в более общем плане о том, как отладить это. Одно разочарование заключается в том, что я даже не знаю, где найти журналы ошибок. Я посмотрел в окне просмотра событий, но ничего не могу найти и не знаю, где искать больше.

Я был бы рад опубликовать код, если это поможет.

редактировать:

Итак, я решил проблему. Это была вещь маршрутизации. Я решил это, включив это в web.config:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
      <modules runAllManagedModulesForAllRequests="true">
          <remove name="UrlRoutingModule" />
          <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />       
      </modules>
  </system.webServer>

Я все еще не прочь разобраться в механике этих модулей. Где они определены? Существует ли файл конфигурации для сервера, который определяет, какие модули загружены, поскольку, по-видимому, это несколько отличается от моего локального IIS и внешнего?

... И я до сих пор не знаю, где журналы.

1 ответ

При размещении на IIS Web API использует тот же модуль маршрутизации URL, что и ASP.NET (MVC), чтобы выбрать конечную точку. Если вы хостинг, это не обязательно.

Другие вопросы по тегам