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>

В одном из комментариев упоминается это обновление, хотя я еще не тестировал его:

http://support.microsoft.com/kb/980368

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