IIS web.config, любые другие символы% кроме%s?
Что касается scriptProcessor в разделе обработчиков файла IIS web.config, есть ли символы%, кроме%s (который, кажется, представляет запрошенное имя файла)? Например, является ли% a распознанным макросом / символом? Если есть другие, кроме% s, где они описаны?
2 ответа
Ваш вопрос немного неясен, поэтому мне пришлось сделать ряд предположений, чтобы ответить на него. Пожалуйста, дайте мне знать, если я ошибаюсь.
Из документации:
Скриптовый процессор
Необязательный строковый атрибут.
Указывает физический путь к файлу DLL расширения ISAPI или файлу Common Gateway Interface (CGI) .exe, который обрабатывает запрос.
Атрибут scriptProcessor требуется только для сопоставлений обработчиков карты сценариев. Когда вы сопоставляете обработчик с расширением ISAPI, вы должны указать ISAPIModule для атрибута modules. Когда вы сопоставляете обработчик с файлом CGI, вы должны указать CGIModule для атрибута modules.
Из документации мы вообще не видим упоминания о форматных строках. Если бы были строки формата, чем бы вы их заменили? Там нет четкого ответа на основе XML. Возможно, вы принимаете переменную окружения за строку формата. Либо ваша конкретная конфигурация конфигурации имеет некоторую постобработку, которая запускается до ее запуска.
Если мы на самом деле говорим о переменных среды, то вы можете просмотреть их, выполнив Win+Break, чтобы вызвать системные настройки, перейти к расширенным настройкам, а затем открыть переменные среды. Вы также можете определить свой собственный. Чтобы использовать любую переменную среды, которую вы можете использовать %variablename%
как и в стандартном файле.bat.
РЕДАКТИРОВАТЬ: После более глубоких исследований, я нашел следующее. %s
даст вам имя сценария, затем %s
снова даст вам параметры foo=bar
, Эта функция не рекламируется (что я могу найти) ни в одной официальной документации IIS. Я сильно подозреваю, что это считается устаревшей функцией. И они прилагают все усилия, чтобы сделать ISAPI нормой.
Из-за того, как он структурирован (то есть как строка стандартного формата), я подозреваю, что пробует другие строки общего формата (%d %c %f
) может дать вам что-то интересное, но, вероятно, нет. Похоже, это было очень конкретное решение очень специфической проблемы.
Это не строго связано с вашим вопросом, но я публикую эти 2 ссылки, так как они каким-то образом связаны и могут быть полезны.
Я нашел, как использовать "@" и "$" для преобразования Web.Config, но я не нашел ничего на "%", который не был бы строго связан с переменными среды.
Первая ссылка: "@"
Эта первая ссылка объясняет использование атрибутов xdt: Transform и xdt: Locator, которые вы можете использовать в файлах преобразования Web.config:
http://msdn.microsoft.com/en-us/library/dd465326.aspx
Этот пример представляет собой интересное использование преобразования Web.Config с использованием Условий с "@":
<configuration xmlns:xdt="...">
<connectionStrings>
<add name="AWLT" connectionString="newstring"
providerName="newprovider"
xdt:Transform="Replace"
xdt:Locator="Condition(@name='oldname'
or @providerName='oldprovider')" />
</connectionStrings>
</configuration>
Вторая ссылка: "$"
Эта вторая ссылка показывает, как использовать "$" для преобразования Web.Config, избегая скучной процедуры ручного комментирования / раскомментирования частей Web.Config при развертывании или тестировании на разных серверах:
http://andrewtwest.com/2010/02/25/using-web-config-transformations-in-web-site-projects/
Выдержка из ссылки, показывающая, как использовать MSBuild для преобразования файлов Web.Config, начиная с файла проекта веб-приложения:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\</OutputPath>
</PropertyGroup>