Поделиться через


Устранение неполадок с веб-развертыванием с помощью Visual Studio

Применимо к: службы IIS

В этой статье показано, как устранить серию ошибок при попытке опубликовать из Visual Studio на сервер, который неправильно настроен через веб-развертывание. Хотя статья написана для определенных версий продукта, основные понятия также могут применяться к более новым версиям.

Чтобы собрать следующие снимки экрана и ошибки, используйте новый проект ASP.NET MVC в Visual Studio. Целевой сервер был чистой установкой Windows Server с службы IIS (IIS). Другая конфигурация не была выполнена.

Не удается подключиться к серверу

Первая ошибка, с которой вы можете столкнуться, выглядит следующим снимок экрана в окне вывода Visual Studio. Для улучшения удобочитаемости полный текст сообщения предоставляется на снимок экрана:

Снимок экрана: выходные данные списка ошибок в Visual Studio.

Web deployment task failed.(Could not connect to the destination computer ("deployserver").On the destination computer, make sure that Web Deploy is installed and that the required process("The Web Management Service") is started.)
This error indicates that you cannot connect to the server. Make sure the service URL is correct,firewall and network settings on this computer and on the server computer are configured properly,and the appropriate services have been started on the server.
Error details:
Could not connect to the destination computer ("deployserver"). On the destination computer,
make sure that Web Deploy is installed and that the required process
("The Web Management Service") is started.
Unable to connect to the remote server
A connection attempt failed because the connected party did not properly respond after a period
of time, or established connection failed because connected host has failed to respond 192.168.0.211:8172

Текст, выделенный в этой ошибке (и другие ошибки в следующих разделах), является ключом для понимания характера проблемы. Веб-развертывание не получил ответ с сервера, поэтому Visual Studio не может различать несколько возможных причин. В результате он дает список вещей, которые нужно попробовать.

Установлена ли служба веб-управления?

На сервере IIS откройте диспетчер службы IIS (IIS) и выберите узел имени компьютера. В представлении "Функции" прокрутите вниз до раздела "Управление " и найдите следующие значки:

Снимок экрана: значок разрешений диспетчера IIS, значок

Если они отсутствуют, необходимо установить службу управления с помощью диалогового окна "Добавление служб ролей". Его также можно установить с помощью установщика веб-платформы на вкладке "Продукты ". Выберите сервер в левом столбце и выберите службу iis: Management Service.

Примечание.

После установки службы управления необходимо запустить ее, так как она не запускается автоматически. Для этого дважды щелкните значок службы управления. После отображения области "Служба управления" нажмите кнопку "Пуск" в области "Действия" справа.

Правильно ли URL-адрес службы?

По умолчанию служба веб-управления прослушивает порт 8172, но этот параметр можно изменить. Самый простой способ проверить, какой порт используется, — открыть область службы управления, как описано ранее, и просмотреть сведения о IP-адресах и портах в разделе "Подключения". Если порт был изменен на что-то отличное от 8172, необходимо убедиться, что новый порт разрешен через брандмауэр, и обновить URL-адрес службы в параметрах публикации Visual Studio, чтобы использовать новый порт.

(403) Запрещено

После установки службы веб-управления Visual Studio может отобразить следующую ошибку:

Снимок экрана: экран списка ошибок в Visual Studio.

Web deployment task failed.(Could not connect to the destination computer ("deployserver") using
the specified process ("The Web Management Service") because the server did not respond.
Make sure that the process ("The Web Management Service") is started on the destination computer.)
Could not connect to the destination computer ("deployserver") using the specified process
("The Web Management Service") because the server did not respond. Make sure that the process
("The Web Management Service") is started on the destination computer.
The remote server returned an error: (403) Forbidden.

Это сообщение вводит в заблуждение. Он указывает, что сервер не ответил, но ошибка 403 указывает, что веб-развертывание может связаться с сервером, но запрос был активно отклонен. Журнал HTTP для службы веб-управления может помочь подтвердить запрос, достигнутый на сервере, и указать сведения о фактическом запросе, который завершился сбоем. Этот журнал можно найти %SystemDrive%\Inetpub\logs\WMSvc по умолчанию. Как и другие журналы IIS, данные не записываются в журнал немедленно, поэтому может потребоваться подождать несколько минут, чтобы просмотреть запрос или перезапустить службу управления веб-сайтом, чтобы очистить журнал.

В журнале отображается следующее WMSVC сообщение:

2011-06-02 17:59:05 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 403 6 5 1669

После 6 того, как 403 в журнале указан код вложенного состояния, и означает, что IP-адрес был отклонен. Полный список кодов состояния и вложенных состояний для IIS можно найти в кодах состояния HTTP в IIS.

Настроена ли служба управления для разрешения удаленных подключений?

Это наиболее вероятной причиной ответа 403.6. Дважды щелкните значок службы управления и убедитесь, что установлен флажок "Включить удаленные подключения ". Чтобы внести изменения, необходимо остановить службу, поэтому не забудьте перезапустить ее после завершения.

Снимок экрана: диалоговое окно

Разрешено ли веб-служба управления через брандмауэр Windows?

При установке веб-службы управления на сервере правило брандмауэра входящего трафика называется веб-службой управления (HTTP-трафик). Убедитесь, что это правило включено, перейдя к брандмауэру >Windows Для администрирования>с расширенной безопасностью. Выберите правила для входящих подключений и найдите правило управления веб-сайтами в списке. Он должен быть включен для всех профилей.

Если вы используете сторонний брандмауэр, необходимо убедиться, что входящий трафик через порт 8172 разрешен.

Настроены ли ограничения IP-адресов для службы управления?

Другая распространенная причина, по которой можно получить ошибку 403, заключается в том, что служба управления настроена для запрета IP-адреса клиента. По умолчанию он настроен на разрешение всех IP-адресов, если разрешены удаленные подключения. Чтобы проверить ограничения IP-адресов, дважды щелкните значок службы управления. Все настроенные правила ограничения IP-адресов находятся в нижней части страницы в ограничениях IPv4-адресов.

(404) Не найдено

Снимок экрана: страница списка ошибок в Visual Studio. Сведения об ошибках находятся в фокусе.

Web deployment task failed.(Could not connect to the destination computer ("deployserver").
On the destination computer, make sure that Web Deploy is installed and that the required process
("The Web Management Service") is started.
The requested resource does not exist, or the requested URL is incorrect.
Error details: Could not connect to the destination computer ("deployserver").
On the destination computer, make sure that Web Deploy is installed and that the required process
("The Web Management Service") is started.
The remote server returned an error: (404) Not Found.

Ошибка 404 указывает, что веб-развертывание могло связаться со службой веб-управления на сервере, но не удалось найти необходимые сведения. Первое, что необходимо сделать, — подтвердить, к каким ресурсам веб-развертывание пыталось подключиться. Если просмотреть журнал веб-службы управления в папке %SystemDrive%\Inetpub\logs\WMSvc на целевом сервере, появится запись в WMSVC журнале, которая выглядит следующим образом:

2011-05-12 15:21:50 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 404 7 0 1606

Msdeploy.axd — это обработчик запросов веб-развертывания.

Установлен ли веб-развертывание?

Убедитесь, что веб-развертывание установлено, перейдите на панель управления "Программы и компоненты " и найдите Microsoft Web Deploy 4.0 в списке установленных программ. Если он отсутствует, вы можете скачать и установить его с официальной страницы скачивания. Кроме того, необходимо убедиться, что запущена служба агента веб-развертывания (MsDepSvc).

Установлен ли обработчик веб-развертывания?

Если веб-развертывание установлено и по-прежнему возникает эта ошибка, убедитесь, что компонент обработчика развертывания IIS в Веб-развертывании установлен. На панели управления "Программы и компоненты" найдите Microsoft Web Deploy 4.0, щелкните его правой кнопкой мыши и выберите "Изменить". В появившемся мастере нажмите кнопку "Далее" на первой странице и нажмите кнопку "Изменить " на второй странице. Добавьте обработчик развертывания IIS и все в нем.

Снимок экрана: диалоговое окно установки Microsoft Web Deploy 4 dot 0. выделен платформа веб-развертывания.

Нажмите кнопку "Рядом ", чтобы завершить работу мастера. После внесения этого изменения необходимо перезапустить службу веб-управления.

(401) Не авторизовано

После правильной настройки веб-развертывания и веб-службы управления необходимо настроить правила делегирования, чтобы разрешить пользователям обновлять содержимое. При возникновении проблем с разрешениями в Visual Studio может возникнуть несколько различных ошибок. Например:

Снимок экрана: список ошибок в Visual Studio с ошибками проблем с разрешениями.

Web deployment task failed.(Connected to the destination computer ("deployserver")
using the Web Management Service, but could not authorize.
Make sure that you are using the correct user name and password, that the site you are connecting
to exists, and that the credentials represent a user who has permissions to access the site.
Make sure the site name, user name, and password are correct. If the issue is not resolved,
please contact your local or server administrator.
Error details:
Connected to the destination computer ("deployserver") using the Web Management Service,
but could not authorize. Make sure that you are using the correct user name and password,
that the site you are connecting to exists, and that the credentials represent a user who
has permissions to access the site.
The remote server returned an error: (401) Unauthorized.

В журнале WMSvc вы увидите следующее сообщение:

2011-05-12 15:50:12 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 401 2 5 1653
2011-05-12 15:50:12 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 user1 192.168.0.203 - 401 1 1326 124

Выделенное состояние http в выходных данных Visual Studio является ошибкой "Отказано в доступе". Выделенное состояние Win32 в журнале ошибок сопоставляется с "Сбой входа: неизвестное имя пользователя или неправильный пароль", поэтому эта ошибка является простым сбоем входа. Если пользователь проходит проверку подлинности, но не имеет необходимых прав для публикации, запись журнала выглядит следующим образом:

2011-05-12 15:55:38 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 401 2 5 0

Чтобы разрешить этому пользователю публиковаться, необходимо настроить делегирование в инструкциях по настройке обработчика веб-развертывания.

Операция не авторизована

Если учетная запись может войти, но не была предоставлена права, необходимые для публикации содержимого, появится следующее сообщение об ошибке:

Снимок экрана: страница списка ошибок в Visual Studio с ошибкой, связанной с разрешениями пользователя.

Web deployment task failed. (Unable to perform the operation ("Create Directory")  for the specified
directory ("bin"). This can occur if the server administrator has not authorized this operation for
the user credentials you are using.

В журнале WMSvc показаны ответы HTTP 200 для этих запросов. К счастью, веб-развертывание 2.1 также записывает сведения в журнал службы Microsoft Web Deploy. Чтобы просмотреть его, выберите Просмотр событий (локальные)>приложения и службы Журналы>Microsoft Web Deploy.

Снимок экрана: меню Просмотр событий. Выделено приложение Microsoft Web Deploy.

Для этой конкретной ошибки журнал событий содержит дополнительные сведения (усеченные для краткости):

User: DEPLOYSERVER\User1
Client IP: 192.168.0.203
Content-Type: application/msdeploy
Version: 8.0.0.0
MSDeploy.VersionMin: 7.1.600.0
MSDeploy.VersionMax: 7.1.1070.1
MSDeploy.Method: Sync
MSDeploy.RequestId: 50de0746-f10d-4640-9b3d-4ba773520e38
MSDeploy.RequestCulture: en-US
MSDeploy.RequestUICulture: en-US
Skip: objectName="^configProtectedData$"
Provider: auto, Path: 
Tracing deployment agent exception. Request ID '50de0746-f10d-4640-9b3d-4ba773520e38'. Request Timestamp: '5/12/2011 9:18:12 AM'. Error Details:
Microsoft.Web.Deployment.DeploymentDetailedUnauthorizedAccessException: Unable to perform the operation ("Create Directory")
for the specified directory ("C:\inetpub\wwwroot\bin"). This can occur if the server administrator has not authorized this
operation for the user credentials you are using.
---> Microsoft.Web.Deployment.DeploymentException: The error code was 0x80070005. ---> System.UnauthorizedAccessException:
Access to the path 'C:\inetpub\wwwroot\bin' is denied.
   at Microsoft.Web.Deployment.Win32Native.RaiseIOExceptionFromErrorCode(Win32ErrorCode errorCode, String maybeFullPath)
   at Microsoft.Web.Deployment.DirectoryEx.CreateDirectory(String path)
   at Microsoft.Web.Deployment.DirPathProvider.CreateDirectory(String fullPath, DeploymentObject source)
   at Microsoft.Web.Deployment.DirPathProvider.Add(DeploymentObject source, Boolean whatIf)
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---

В этом сообщении показано, где необходимо предоставить разрешения для этой конкретной ошибки. В Visual Studio также может появиться следующая ошибка разрешений:

Снимок экрана: страница списка ошибок в Visual Studio с ошибкой разрешений в фокусе.

Web deployment task failed.((5/12/2011 11:31:41 AM) An error occurred when the request was processed on the remote computer.)

(5/12/2011 11:31:41 AM) An error occurred when the request was processed on the remote computer.
The server experienced an issue processing the request. Contact the server administrator for more information.

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

User: DEPLOYSERVER\User1
Client IP: 192.168.0.203
Content-Type: application/msdeploy
Version: 8.0.0.0
MSDeploy.VersionMin: 7.1.600.0
MSDeploy.VersionMax: 7.1.1070.1
MSDeploy.Method: Sync
MSDeploy.RequestId: 63b2f3d1-1817-444f-8280-9fa4f6f85d53
MSDeploy.RequestCulture: en-US
MSDeploy.RequestUICulture: en-US
Skip: objectName="^configProtectedData$"
Provider: auto, Path: 
Tracing deployment agent exception. Request ID '63b2f3d1-1817-444f-8280-9fa4f6f85d53'. Request Timestamp: '5/12/2011 9:31:41 AM'. Error Details:
System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.
   at System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, String name, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier owner, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl)
   at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext)
   at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections, Object exceptionContext)
   at Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(String path)
   at Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject source, Boolean whatIf)
   at Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject source, DeploymentSyncContext syncContext)
   at Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
   at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)

Из этих выходных данных мы видим, что User1 у вас нет прав на настройку сведений о безопасности. В этом случае у пользователя нет разрешений на изменение содержимого. Предоставление разрешения на изменение разрешений содержимому устраняет проблему.

Другие

Если вы не можете просмотреть приложение .NET 4.0 после успешной публикации, это может быть то, что .NET 4.0 не зарегистрирован в IIS. Другие симптомы связаны с установкой .NET 4.0, но в СЛУЖБАх IIS нет пулов приложений .NET 4.0 или сопоставлений обработчиков. Этот симптом возникает при установке .NET 4.0 перед установкой СЛУЖБ IIS. Чтобы устранить эту проблему, запустите командную строку с повышенными привилегиями и выполните следующую команду:

%systemdrive%\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -iru

Дополнительная информация