IIS 6 переводит AppRoot / начальную точку в верхний регистр, когда виртуальный каталог импортируется из файла.

Я искал это в Интернете и ничего не нашел (ну, один удаленно релевантный пост), так что я здесь.

У нас есть несколько приложений ASP.NET в IIS 6, использующих проверку подлинности с помощью форм с выделенным путем для каждого приложения. Поскольку путь чувствителен к регистру, он должен точно соответствовать разделу пути URL. Однако из-за неправильного регистра в метабазе IIS 6 для AppRoot (или начальной точки в пользовательском интерфейсе IIS) Bowser не отправляет файл cookie формы на сервер всякий раз, когда URL-адрес предварительно разрешается на сервере и отправляется клиенту в неправильном случае.

Пример:
URL приложения = "https://Test.net/Application1 "
Путь cookie = / Application1
Metabase AppRoot = / LM / W3SVC / 1393818691 / ROOT / APPLICATIONPATH1
Разрешенный URL = "https://Test.net/APPLICATIONPATH1"

Теперь о основная причина ...
Мы создаем виртуальные каталоги на тестовом сервере вручную в конкретном случае (соответствует Пути для каждого приложения). Затем мы экспортируем виртуальный каталог с помощью пользовательского интерфейса в XML-файл, который затем импортируется на другой сервер (скажем, производственный), после чего IIS решает использовать верхний регистр для элемента метабазы ​​AppRoot.

Может кто-нибудь пролить некоторый свет на это? Есть ли в IIS параметр, о котором я не знаю? Я стараюсь избегать ручного редактирования метабазы ​​после импорта. Это ошибка?


person user276464    schedule 13.04.2010    source источник
comment
У меня нет ответа, чтобы добавить, но я могу подтвердить поведение точно так, как вы описываете, при создании нового VirDir из файла.   -  person mfinni    schedule 20.04.2011
comment
Действительно, это сильно раздражало ... в итоге пришлось писать дополнительные скрипты для исправления сломанных AppRoots (в нашем случае, потому что за обратным прокси-сервером регистр пути был важен сам по себе). Кроме того, при использовании iiscnfg.vbs для копирования ветки метабазы ​​с переименованием подход не переименовывается, что обычно приводит к его нарушению. Эти инструменты не кажутся стабильными.   -  person bobince    schedule 10.08.2011


Ответы (2)


Вы пробовали настроить свой сайт IIS, используя вместо этого библиотеку задач SDC для MSBuild?

Сайт CodePlex

Он прост в использовании и позволяет полностью автоматизировать развертывание.

В противном случае можно было бы быстро исправить это вручную, отредактировав Metabase.xml:

WINDOWS \ system32 \ inetsrv \ Metabase.xml

Я сталкивался с этой проблемой раньше и не нашел способа обойти ее при импорте xml.

person el_tone    schedule 23.04.2010

Я нашел другой способ решения ...

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

Может быть, нужно сделать больше, но это безопаснее, чем напрямую менять метабазу!

person Nuno Agapito    schedule 30.05.2011