Обработчики возвращают ошибку 404 на интегрированном конвейере IIS7.5

<httpHandlers>
  <add path="ajaxpro/*.ashx" verb="POST,GET" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2" />
  <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" />
  <remove verb="*" path="*.asmx" />
  <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpHandlers>

У меня проблема с iis7.5 в интегрированном режиме. Когда я использую его в классическом режиме, обработчики, представленные выше, работают нормально, но если я переключаюсь на интегрированный конвейер, все запросы, которые должны быть обработаны, возвращают ошибку 404. Почему?


person er-v    schedule 23.03.2010    source источник


Ответы (4)


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

<system.webServer>
   <handlers>
      <add... >
   </handlers>
</system.webServer>

Надеюсь, кто-то, кто знает, о чем они говорят, поправит меня, если я ошибаюсь.

person Gary McGill    schedule 14.04.2010
comment
Спасибо! Ваш ответ помог мне найти эту статью на msdn msdn.microsoft.com/en- us / library / 46c5ddfy.aspx со всей необходимой мне информацией! - person er-v; 15.04.2010
comment
Я думаю, что добавление ваших обработчиков в оба раздела необходимо, если вы используете IIS 6 и IIS 7 ... (что может быть подразумеваемой разницей между классическим и интегрированным режимами?) - person Brad Parks; 13.09.2011

В разделе Request Filtering мне нужно было установить файлы .axd в качестве разрешенного расширения, моя хостинговая компания отключила параметр Allow unlisted file name extensions, который отличался от моей среды разработки.

person Colin Asquith    schedule 16.04.2015

Недавно я переместил клиентский веб-сайт со старого IIS6 на установку IIS7. Они также сталкивались с ошибками 404 в своем приложении при вызове .axd. Их сайт был настроен на .net 2, разрешения правильные, все обработчики выглядели хорошо. В итоге они изменили пул приложений с «Интегрированного режима управляемого конвейера» на классический, что решило проблему для их приложения.

person Jonathan    schedule 16.02.2016

Перепробовав множество вариантов, ничего не вышло. Но, тем не менее, это сработало. В папке Appstart добавьте этот код routes.IgnoreRoute ("{resource} .axd / {* pathInfo}") в routeconfig.cs, как показано ниже.

public static void RegisterRoutes(RouteCollection routes) {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
}
person Ifesinachi Bryan    schedule 24.10.2017