#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>