2013-07-20 2 views
5

Что касается скриптапроцессора в разделе обработчиков web.config IIS, есть ли какие-либо% символов, кроме% s (который, кажется, представляет запрошенное имя файла)? Например, является ли признанным макросом/символом? Если есть другие, кроме% s, где они описаны?IIS web.config, любые другие% символов, кроме% s?

+1

Я знаю, что это% Windir символ%: http://technet.microsoft.com/en-us/library/cc754147%28v=ws.10%29. aspx, но я не знаю, есть ли что-то еще. –

+0

Это, безусловно, направление в правильном направлении. Я не думал о возможности наличия% windir% и, возможно, других переменных среды, доступных в этом контексте. Престижность к вам. – bugmagnet

ответ

2

Ваш вопрос немного неясен, поэтому мне пришлось сделать ряд предположений, чтобы ответить на него. Пожалуйста, дайте мне знать, если у меня что-то не так.

Из documentation:

Процессор

Script

Необязательный атрибут строки.

Задает физический путь к файлу расширения .dll ISAPI или файлу интерфейса общего доступа (CGI) .exe, который обрабатывает запрос.

Атрибут scriptProcessor требуется только для сопоставлений обработчиков карт сценариев. Когда вы сопоставляете обработчик с расширением ISAPI, вы должны указать ISAPIModule для атрибута модулей. Когда вы сопоставляете обработчик с CGI-файлом, вы должны указать CGIModule для атрибута модулей.

Из документации мы не видим никаких упоминаний о строках формата вообще. Если бы были строки формата, что бы вы их заменили? Нет четкого ответа на основе XML. Возможно, вы примете переменную окружения для строки формата. Или ваша конкретная настройка конфигурации имеет некоторую пост-обработку, которая запускается на ней, прежде чем она будет нажата вживую.

Если мы действительно говорим о переменных окружения, то вы можете просмотреть их, выпустив Win + Break, чтобы вызвать системные настройки, перейти к расширенным, а затем открыть переменные среды. Вы также можете определить свой собственный. Чтобы использовать любую переменную среды, вы можете использовать %variablename%, как и в стандартном .bat-файле.

РЕДАКТИРОВАТЬ: После больших исследований я нашел следующее. %s даст вам имя сценария, затем %s снова даст вам параметры foo=bar. Эта функция не объявляется (что я могу найти) в любой официальной документации IIS. Я сильно подозреваю, что это считается устаревшей особенностью. И они толкая трудно сделать Isapi нормы.

Из-за того, как он структурирован (т. Е. Как строка стандартного формата), я подозреваю, что попытка использования других строк общего формата (%d %c %f) может дать вам что-то интересное, но, вероятно, нет. Похоже, это было очень специфическим решением для очень конкретной проблемы.

+0

Да, не очень понятно. Не так сильно интересуется «строками формата», как и в других «макросах» (из-за отсутствия лучшего слова). Например,% s представляет запрошенное имя сценария. Есть ли что-то среднее и т. Д.? – bugmagnet

+0

После некоторых исследований, похоже, если вы выдаете '% s', как только он дает вам запрошенное имя сценария, второе высказывание'% s' даст вам параметры. Тем не менее, я до сих пор не нашел ни одной документации Microsoft об этом. Все, что я нашел, связано с тем, что Perl работает под IIS. – OmnipotentEntity

+0

http://www.microsoft.com/msj/0498/iis/iis.aspx упоминает об этом попутно. – OmnipotentEntity

0

Это не связано с вашим вопросом, но я отправляю эти 2 ссылки, поскольку они каким-то образом связаны и могут быть полезны.

Я нашел, как использовать «@» и «$» для преобразования Web.Config, но я ничего не нашел в «%», который не имеет строгого отношения к переменным среды.

Первая ссылка: "@"

Это первая ссылка объясняет использование XDT: Transform и XDT: локатора атрибуты, которые вы можете использовать в Web.config преобразования файлов:

http://msdn.microsoft.com/en-us/library/dd465326.aspx

Этот пример - интересное использование Сети.преобразование конфигурации с использованием условия с «@»:

<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> 
Смежные вопросы