Поделиться через


ASP

Уолтер Оливер

Классический ASP включен в IIS 7.0 и более поздних версий и может использоваться в сценариях общего размещения. Однако организаторы, которые планируют сделать это, должны учитывать следующие рекомендации:

  1. Отключите кэш шаблонов ASP. Так как кэш шаблона диска ASP не учитывает общее размещение, его следует отключить. Это не должно создавать проблем, так как до 500 страниц ASP на рабочий процесс кэшируются в памяти перед записью на диск.
  2. Делегируйте параметр scriptErrorSentToBrowser. Команда IIS ужесточила классическую безопасность ASP в IIS 7.0 и более поздних версиях. Например, свойству scriptErrorSentToBrowser присвоено значение false. Это означает, что в браузере пользователя не отображается никаких ошибок скрипта. Однако в размещенной среде это может быть проблемой. Другие способы устранения неполадок с классическими ошибками ASP практически отсутствуют. Обратите внимание, что не рекомендуется делегировать <раздел asp> в applicationhost.config, так как существуют определенные параметры, такие как расположение кэша шаблонов и параметр runOnEndAnonymously, который хост-службы могут не делегировать. В приведенном ниже руководстве содержатся инструкции по делегированию параметра scriptErrorSentToBrowser без делегирования полного <раздела asp> .

Чтобы отключить кэш шаблонов ASP, выполните следующие действия.

Откройте командную строку и выполните следующую команду:

%windir%\system32\inetsrv\appcmd set config -section:asp -cache.maxDiskTemplateCacheFiles:0

Чтобы делегировать параметр scriptErrorSentToBrowser, выполните следующие действия:

  1. Разрешите делегирование <раздела asp> в applicationhost.config с помощью overrideModeDefault, открыв %windir%\system32\inetsrv\config\applicationhost.config в текстовом редакторе и изменив <элемент section name="asp" overrideModeDefault="Deny" /> , как показано ниже.

    <section name="asp" overrideModeDefault="Allow" />
    
  2. Используйте lockAllAttributesExcept и lockElements, чтобы разрешить делегирование только параметра scriptErrorSentToBrowser, найдите <элемент asp> и измените его следующим образом:

    <asp lockAllAttributesExcept="scriptErrorSentToBrowser" lockElements="limits,cache" />
    
  3. Теперь вы, как хост-служба, можете использовать appcmd, чтобы задать для параметра scriptErrorSentToBrowser значение true (см. пример ниже).

    %windir%\system32\inetsrv\appcmd set config "Default Web Site" -section:asp -scriptErrorSentToBrowser:true
    

    Или вы можете попросить клиентов поместить следующую инструкцию в свои web.config файлы:

    <system.webServer>
       <asp scriptErrorSentToBrowser="true"/>
    </system.webServer>
    

Ресурсы

Дополнительные сведения см. в разделах: