Компонент WebDeploy 2.0 на IIS7 - права доступа к корневому диску - PullRequest
2 голосов
/ 24 января 2011

Я установил и настроил MS WebDeploy 2.0 на (тестовом) сервере, чтобы пользователи WebMatrix и Visual Studio 2010 могли использовать его для загрузки своих приложений в наши среды Windows 2008R2.

Это хорошо работает с WebMatrix, но я столкнулся с проблемой при развертывании приложения из Visual Studio 2010. Если я нажимаю «Опубликовать» и использую метод WebDeploy, Visual Studio сообщает об ошибке, и ничего не публикуется:

alt text

Итак, я включил отслеживание невыполненных запросов для службы веб-управления и вижу следующее:

alt text

53 AspNetModuleDiagErrorEvent Uri /MsDeploy.axd EventData Tracing исключение агента развертывания. Запросить ID ''. Отметка времени запроса: '01 / 22/2011 00:18:54' . Детали ошибки: System.UnauthorizedAccessException: Доступ к пути 'd: \' запрещен.
at System.IO .__ Error.WinIOError (Int32 errorCode, String MaybeFullPath) в System.IO.DriveInfo.get_DriveFormat ()

Для облегчения использования функции WebDeploy делегированному пользователю управления сайта предоставляется полный контроль над веб-папками сайта. Это рассматривается в этой статье:

Настройка компонента веб-развертывания на веб-сервере

Другие разрешения не упоминаются. Принимая во внимание природу ошибки, я попытался предоставить делегированному управляющему пользователю права доступа Read Attribute для сайта D:\ и ограничил его This Folder Only, и Visual Studio 2010 сразу же может опубликовать приложение с помощью WebDeploy.

Действительно ли мне нужно назначить разрешения на чтение для корня диска, на котором размещен веб-сайт, чтобы Web Deploy 2.0 работал с Visual Studio 2010?

1 Ответ

2 голосов
/ 31 января 2011

Это ошибка в Visual Studio 2010, которая по умолчанию использует неправильную Microsoft.Web.Deployment сборку (7.1.0.0).

Чтобы решить эту проблему, необходимо внести изменения в файл конфигурации VS 2010, чтобы заставить его использовать 8.0.0.0:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config

<dependentAssembly>
  <assemblyIdentity 
     name="Microsoft.Web.Deployment" 
     publicKeyToken="31bf3856ad364e35" 
     culture="neutral"/>
  <bindingRedirect 
     oldVersion="7.1.0.0" 
     newVersion="8.0.0.0"/>
</dependentAssembly>

Приведенный выше фрагмент xml следует добавить к:

/configuration/runTime/assemblyBinding

Это было подтверждено группой Microsoft PSS. Очевидно, Visual Studio 2010 SP1 решит эту проблему.

Очевидно, что вам нужно установить MS WebDeploy 2.0 на компьютере развертывания. Это можно получить с помощью установщика веб-платформы или установки RTM Web Matrix 1.0, которая, кстати, делает все правильно.

...