Отображение классических ASP-страниц в.net в IIS
Я пытаюсь отобразить запросы на классические страницы asp, которые будут обрабатываться.net, чтобы он выполнялся через пользовательский httpmodule.
В IIS я переназначил запросы asp в aspnet_isapi.dll - я уверен, что все сделал правильно
Теперь в моем тестовом приложении я получаю эту ошибку:
Server Error in '/TestASPRedirect' Application.
--------------------------------------------------------------------------------
This type of page is not served.
Description: The type of page you have requested is not served because it has been explicitly forbidden. The extension '.asp' may be incorrect. Please review the URL below and make sure that it is spelled correctly.
Requested URL: /testaspredirect/test.asp
Поиск в Интернете этой ошибки показывает массу людей, имеющих проблемы с cassini, но это не очень актуально, я тестирую это как на IIS 5.1 на компьютере с XP, так и на IIS6, также получая ту же ошибку.
Я следовал инструкциям по добавлению и регистрации httphandler (см. Http://support.microsoft.com/default.aspx?scid=kb;en-us;Q308001), но я не знаю, что добавить в процедуру ProcessRequest чтобы запрос был передан. Что такое http. По умолчанию.net httphandler, могу ли я просто сопоставить это в web.config?: так что-то вроде:
<httpHandlers>
<add verb="*" path="*.asp" type="standard.nethttphandler"/>
</httpHandlers>
Как мне сказать asp.net, что он должен передавать запросы ASP, а не блокировать?
3 ответа
На самом деле вы только один шаг далеко от успеха. Добавление следующего раздела в файл web.config вашего локального сайта (или виртуального каталога):
<configuration>
...
<system.web>
<compilation>
<buildProviders>
<add extension=".asp" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
</compilation>
<httpHandlers>
<add path="*.asp" verb="*" type="System.Web.UI.PageHandlerFactory" validate="true"/>
</httpHandlers>
</system.web>
Похоже, .asp
расширение отображается на HttpForbiddenHandler
,
Если вы используете ASP.NET 1.1, откройте следующий файл:
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config
Если вы используете ASP.NET 2.0, откройте этот файл:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config
Ищи " path="*.asp"
", затем закомментируйте эту строку.
<!-- machine.config/ASP.NET 1.1-->
<add path="*.asp" verb="*"
type="System.Web.HttpForbiddenHandler"/>`
<!-- web.config/ASP.NET 2.0-->
<add path="*.asp" verb="*"
type="System.Web.HttpForbiddenHandler" validate="true"/>`
Найдите файл ниже:
C:\WINDOWS\MICROSOFT.NET\FRAMEWORK\<FramworkVersion>\Config\web.config
где <FramworkVersion>
это имя папки:
откройте его в редакторе XML.. (даже блокнот в порядке)
и добавьте строку ниже:
<add path="*.asp" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True"/>
под ниже XPath:
configuration/system.web/httpHandlers
заменить существующий!
Добавьте ниже строки:
<add extension=".asp" type="System.Web.Compilation.PageBuildProvider"/>
под ниже XPath:
/configuration/system.web/compilation/buildProviders
Работал как драгоценный камень для меня:)