Я хочу скопировать веб-сайт ASP.NET MVC на удаленный сервер IIS 7 с помощью WebDAV. Я создал сайт в IIS, включил WebDAV и назначил специальный пул приложений, который я назвал «Пул приложений WebDAV». Используя клиент Windows 7 или Vista, я могу смонтировать удаленный сайт как сетевой диск. Все идет нормально.
Однако у меня проблемы с загрузкой web.config
файлов на удаленный сайт. Одна из проблем заключается в том, что как только web.config
загружен, он используется для настройки сайта WebDAV. Файл web.config
в папке Views
проекта MVC эффективно блокирует доступ к этой папке.
Чтобы обойти эту проблему, я настроил пул приложений в файле applicationHost.config
:
<configuration>
<applicationPools>
<add name="WebDAV Application Pool"
autoStart="true"
enableConfigurationOverride="false" />
</applicationPools>
</configuration>
Интересная часть - это атрибут enableConfigurationOverride:
Значение true означает, что делегированные настройки в файлах Web.config будут обрабатываться для приложений в этом пуле приложений. Если false, все настройки в файлах Web.config будут игнорироваться для этого пула приложений.
Это позволяет загрузить файл web.config
в папку Views
, не нарушая доступа к папке.
Однако мне все еще не удается загрузить файл web.config
в корневую папку. У меня есть следующие настройки в файле applicationHost.config
, чтобы фильтрация запросов не мешала WebDAV:
<configuration>
<location path="webdav.mysite.tld">
<system.webServer>
<security>
<requestFiltering>
<fileExtensions applyToWebDAV="false" />
<verbs applyToWebDAV="false" />
<hiddenSegments applyToWebDAV="false" />
</requestFiltering>
</security>
</system.webServer>
</location>
</configuration>
В частности, hiddenSegments
обычно блокирует доступ к web.config
, но установка для атрибута applyToWebDAV
значения false должна гарантировать, что этот файл не будет заблокирован при использовании WebDAV.
К сожалению, мне все еще не удается скопировать свой web.config
файл в корневую папку сайта. Выполнение перетаскивания в проводнике Windows на подключенный сетевой диск WebDAV приведет к появлению следующего сообщения об ошибке:
Ошибка 0x80070057: неверный параметр.
По проводу кажется, что возвращается HTTP-статус 400 Bad Request
.
Могу ли я что-нибудь сделать, чтобы настроить WebDAV на IIS 7, чтобы избежать этой проблемы?
Следовать за
В настоящее время я не могу воспроизвести описанную выше проблему. Возможно, мне пришлось перезапустить что-то или какой-то другой неизвестный фактор устранил мою проблему. Суть в том, что теперь я могу опубликовать веб-сайт с помощью WebDAV.
enableConfigurationOverride
бесценна. Я не могу поверить, что это не параметр, доступный из графического интерфейса где угодно. - person cjbarth   schedule 05.11.2012