WebMatrix анализирует файл .html как .asp

У меня есть файл с расширением .html, который содержит:

<!--#include virtual="filename"-->

директива, и я использую Microsoft WebMatrix. Когда я запускаю веб-страницы из WebMatrix, директива не обрабатывается, а вместо этого директива отображается в HTML. Как настроить WebMatrix для обработки этих страниц, как если бы они были файлами .asp?


person Brian Fisher    schedule 26.04.2011    source источник


Ответы (2)


Вам необходимо настроить веб-сервер для сопоставления файлов .html с asp.dll. Если вы хотите сделать это локально с помощью IIS Express, вы можете добавить новую запись в файл applicationhost.config в разделе <handlers> следующим образом:

    <add name="ASPClassicHtml" path="*.html" verb="GET,HEAD,POST" 
         modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" 
         resourceType="File" />

По сути, это копия существующей записи для ASPClassic, но с указанием на html-файлы. Обычно вы можете найти applicationhost.config в Мои документы > IISExpress > config.

person Mike Brind    schedule 26.04.2011
comment
Я добавил эту строку в applicationhost.config, но она по-прежнему просто отображает файл с директивами в нем. Спасибо. - person Brian Fisher; 27.04.2011
comment
Вы остановили сайт, а затем перезапустили его? Вероятно, вам также нужно было очистить кеш браузера. - person Mike Brind; 27.04.2011
comment
Я думаю, что этот новый обработчик должен быть помещен перед обработчиком StaticFile в списке обработчиков. - person vikomall; 27.04.2011
comment
Я разместил его сразу под существующей записью ASPClassic. ВОММ. Однако мне нужно было очистить кеш браузера. - person Mike Brind; 27.04.2011
comment
Я разместил его в нижней части раздела обработчиков. Когда я переместил его над записью StaticFile, это сработало. Спасибо! - person Brian Fisher; 27.04.2011
comment
Я обнаружил, что это отлично работает в разделе webServer/handlers Web.config. Затем я добавил преобразование в Web.Release.config, поскольку asp.dll находится в другом месте для IIS: <add name="ASPClassicHtml" scriptProcessor="%windir%\system32\inetsrv\asp.dll" xdt:Locator="Match(name)" xdt:Transform="SetAttributes(scriptProcessor)" /> - person Jonathon Watney; 28.05.2019

Чтобы включить включение на стороне сервера без передачи всех HTML-файлов через процессор ASP, вы можете добавить эти два элемента «добавить» в раздел обработчиков. Убедитесь, что вы добавили его в начало раздела.

<handlers accessPolicy="Read, Script">
    <add name="SSINC-htm" path="*.htm" verb="GET,POST" modules="ServerSideIncludeModule" resourceType="File" />
    <add name="SSINC-html" path="*.html" verb="GET,POST" modules="ServerSideIncludeModule" resourceType="File" />
    ...
    ...
    ...
</handlers>
person kkhimself    schedule 25.08.2011