У нас было несколько веб-сайтов веб-форм ASP.NET 3.5 и ASP.NET 4 с Custom UrlRewrite, которые программно отображают URL-адреса, оптимизированные для SEO (http://example.com/key/This-is-sample-text-in-url.html) на физический адрес (http://example.com/key.aspx)
Эти веб-сайты отлично работали в IIS 6 с C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll для 3.5 и c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll для 4.0 в окно сопоставления расширения приложения.
после перехода на Windows 2012 все веб-сайты 3.5 работают с использованием классического .NET 3.5 AppPool и этого оператора в разделе обработчиков:
<remove name="ASP.Net-ISAPI-Wildcard" />
<add name="ASP.Net-ISAPI-Wildcard" path="*"
verb="*" type="" modules="IsapiModule"
scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll"
resourceType="Unspecified"
requireAccess="None"
allowPathInfo="false"
preCondition="classicMode,runtimeVersionv2.0,bitness64"
responseBufferLimit="4194304" />
Я ожидал, что будет использоваться тот же AppPool Classic .NET 4.0, и следующий обработчик должен работать, но не работает:
<remove name="ASP.Net-ISAPI-Wildcard" />
<add name="ASP.Net-ISAPI-Wildcard" path="*"
verb="*" type="" modules="IsapiModule"
scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"
resourceType="Unspecified"
requireAccess="None"
allowPathInfo="false"
preCondition="classicMode,runtimeVersionv4.0,bitness64"
responseBufferLimit="4194304" />
Я по-прежнему получаю сообщение об ошибке HTTP 404.0 — Not Found
Модуль: IIS Web Core
Уведомление: MapRequestHandler
Обработчик: StaticFile
Код ошибки: 0x80070002
Я не могу понизить версию сайта и не нашел ничего полезного, чтобы найти источник ошибки. Файл журнала сайта не содержит никаких подробностей, ошибок в журналах событий нет.
Я подозревал, что может быть конфликт в сопоставлениях обработчиков, и пытался отключить нерелевантные или подозрительные записи через Web.Config, но никаких изменений не произошло. Я не знаю, но, возможно, ASP.Net-ISAPI-Wildcard не может перехватить запрос и, наконец, процесс заканчивается обработчиком StaticFile, хотя в упорядоченном списке ASP.Net-ISAPI-Wildcard находится сверху, а StaticFile — последний .
Я ценю, если у кого-нибудь есть решение для этого.
p.s. в приведенном выше примере целевая страница работает, т.е. URL-адрес (http://example.com/key.aspx )