Combres.axd возвращает 404 в приложении WebForms
У меня есть 2 приложения ASP.NET, 1 веб-формы и 1 MVC. Combres работал прекрасно для обоих, работая локально на IIS Express. После развертывания обоих приложений на тестовом сервере (IIS 7 оба приложения находятся на одном и том же веб-сайте в IIS) ссылка combres.axd, на которую ссылаются страницы приложения WebForms, возвращает значение 404, а приложение MVC работает нормально.
Я подключил приложение WebForms к своему локальному IIS, и оно снова заработало.
Я посмотрел на модули и обработчики между моим локальным IIS, приложением MVC и приложением WebForms, и регистрации маршрутов выглядят одинаково.
Если я устанавливаю defaultDebugEnabled="true", то он генерирует тег сценария для каждого сценария в наборе ресурсов и работает нормально.
Есть идеи, как отладить 404 с combres.axd?
1 ответ
Отследил это до конфигурации модулей в web.config:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Я работаю с устаревшим приложением WebForms, которое было создано на основе.NET 3.0/3.5, поэтому у меня не было атрибута runAllManagedModulesForAllRequests. Я вижу в последнем шаблоне Visual Studio 2010 ASP.NET WebForms, теперь это по умолчанию.
Я также нашел сообщение, в котором предлагается метод менее грубой силы, чтобы заставить UrlRoutingModule перехватить маршрут combres.axd.
<system.webServer>
<modules>
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
</modules>
</system.webServer>
В одном из комментариев упоминается это обновление, хотя я еще не тестировал его: