Обработчики возвращают ошибку 404 на интегрированном конвейере IIS7.5 - PullRequest
4 голосов
/ 23 марта 2010
<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. Почему?

Ответы [ 4 ]

10 голосов
/ 14 апреля 2010

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

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

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

1 голос
/ 16 февраля 2016

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

1 голос
/ 16 апреля 2015

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

0 голосов
/ 24 октября 2017

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

public static void RegisterRoutes(RouteCollection routes) {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
}
...