Я хочу скопировать веб-сайт 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, чтобы избежать этой проблемы?
Followup
В настоящее время я не могу воспроизвести проблему, описанную выше. Возможно, мне пришлось перезапустить что-то, или какой-то другой неизвестный фактор решил мою проблему. Суть в том, что теперь я могу публиковать веб-сайт с помощью WebDAV.