Проблемы отладки службы WCF Web Api REST - PullRequest
2 голосов
/ 17 января 2012

Итак, я создал службу REST на основе WCF Web API.Он отлично работает на моем местном 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, чтобы увидеть, что в этом коде что-то естьэто приводило к сбою запроса, но результат остается.

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

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

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

edit:

Хорошо, так что я решил проблему.Это была вещь маршрутизации.Я решил это, включив это в 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 Ответ

0 голосов
/ 18 января 2012

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

...