Доступ запрещен при создании виртуального каталога через проект веб-развертывания

Я пытаюсь использовать проект веб-развертывания (VS 2008) в решении TFS для развертывания веб-сайта на сервере сборки (TFS 2008) для запуска модульных тестов на основе сети. По какой-то причине, которую я еще не могу понять, он не создает виртуальный каталог:

Использование задачи "CreateVirtualDirectory" из сборки "C:\Program Files\MSBuild\Microsoft\WebDeployment\v9.0\Microsoft.WebDeployment.Tasks.dll". Задача "CreateVirtualDirectory" Инициализация веб-сервера IIS... C:\Program Files\MSBuild\Microsoft\WebDeployment\v9.0\Microsoft.WebDeployment.targets(667,5): ошибка: доступ запрещен. C:\Program Files\MSBuild\Microsoft\WebDeployment\v9.0\Microsoft.WebDeployment.targets(667,5): ошибка: Не удалось создать виртуальный каталог 'abc'. Выполнено выполнение задачи "CreateVirtualDirectory" - FAILED.

Пользователь TFSService, конечно же, находится в группе "Администраторы" на машине сборки TFS (которая работает под управлением Windows Server 2008). Я не знаю, что еще может быть неправильно. Ive проверил журнал событий, нет никаких подсказок. Я могу вручную создать виртуальный каталог на этом компьютере через консоль IIS без проблем.

Любые идеи, что может быть проблемой или предложениями относительно того, как диагностировать это дальше?

5 ответов

Работает ли учетная запись TFS под теми же привилегиями, что и учетная запись, которую вы используете для подключения к IIS? Сделайте, как предложил Крейг, и переместите учетную запись TFS в группы, в которых вы участвуете.


у него должны быть разрешения... пытались ли вы поместить TFSService в те же группы, в которых вы находитесь?


В конечном итоге мне удалось запустить развертывание, вызвав цель сборки _CopyWebApplication для веб-приложения из моей сборки TFS script (после ручного создания виртуального каталога IIS). Я должен был добавить дополнительную цель, хотя бы для того, чтобы связать файлы в проекте, которые нужно скопировать, так как встроенная цель _CopyWebApplication не включает эти.


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


Я видел это, когда сервер IIS не работал на порту по умолчанию. Я бы рекомендовал проверять IIS, чтобы увидеть, работает ли он на порту 80 в качестве шага для дальнейшей диагностики вашей проблемы.

licensed under cc by-sa 3.0 with attribution.