HttpModules не работает с iis 7.5 для перезаписи url / URL с меньшим расширением (выдает ошибку 500.0)

#asp.net #url-rewriting #iis-7.5 #ihttphandler #httpmodule

#asp.net #url-перезапись #iis-7.5 #ihttphandler #httpmodule

Вопрос:

Я использую перезапись URL с помощью IHttpModule. Приложение работает на локальном, но на сервере приложение выдает ошибку, если я написал путь без расширения (aspx).

У меня был модуль перезаписи URL-адреса в веб-конфигурации, например

    <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
         <modules>
      <add name="URLRewriteModule" type="URLRewriteModule" preCondition="ManagedHandler" />
    </modules>
    <defaultDocument>
      <files>
        <add value="Login.aspx" />
      </files>
    </defaultDocument>
  </system.webServer>
  

А также есть обработчик ExtensionlessUrlHandler-Integrated-4.0, ExtensionlessUrlHandler-ISAPI-4.0_64bit, ExtensionlessUrlHandler-ISAPI-4.0_32bit. Тогда также я получаю следующую ошибку

Ошибка HTTP 500.0 — внутренняя ошибка сервера

Модуль ManagedPipelineHandler

Уведомление ExecuteRequestHandler

Обработчик ExtensionlessUrlHandler-Интегрированный-4.0

Код ошибки 0x800703e9

Ответ №1:

Я думаю, вы пропустили конфигурацию.

Ниже приведен пример, пользовательский http-модуль должен быть настроен как в системе.веб-узел и узел system.webserver

   <system.web>
<compilation debug="true" targetFramework="4.0" />
<httpModules>
  <add name="CustomHttpModule" type="Routing_Static_Page_Demo.WebModule.CustomHttpModule, Routing_Static_Page_Demo" />
</httpModules>
  

 <system.webServer>
<modules runAllManagedModulesForAllRequests="true">
  <remove name="UrlRoutingModule"/>
  <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, 
                                    System.Web, 
                                    Version=4.0.0.0, 
                                    Culture=neutral, 
                                    PublicKeyToken=b03f5f7f11d50a3a" />
  <add name="CustomHttpModule" type="Routing_Static_Page_Demo.WebModule.CustomHttpModule" />
</modules>