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

ответ

10

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

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

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

+1

Спасибо! Ваш ответ помог мне найти эту статью на msdn http://msdn.microsoft.com/en-us/library/46c5ddfy.aspx всю необходимую мне информацию! –

+0

Я считаю, что добавление ваших обработчиков в оба раздела требуется, если вы используете IIS 6 и IIS 7 ... (что может быть подразумеваемой разницей между классическими и интегрированными режимами?) –

1

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

1

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

0

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

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