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


Коды ошибок веб-развертывания

Bilal Aslam

В некоторых распространенных случаях ошибок в веб-развертывании отображается код ошибки. В этой таблице объясняется, почему возникает ошибка, и действия, которые пользователь может предпринять, чтобы избежать ошибки. Обратите внимание, что сообщение об ошибке может отличаться в зависимости от способа вызова веб-развертывания, например, Microsoft WebMatrix выбирает отображение пользовательских сообщений об ошибках. Приведенные ниже сообщения об ошибках отображаются в командной строке и API msdeploy.exe:

MySqlDumpNotFound

Диагностика. Веб-развертывание не может найти исполняемый файл mysqldump.exe. Этот исполняемый файл необходим для развертываний базы данных MySQL.

Решение. Существует два обходных решения:

  1. Поместите исполняемый файл в C:\Program Files\MySQL\MySQL Server 5.1\bin
  2. Задайте раздел реестра REG_SZ, чтобы он указывал на исполняемый файл, например (HKEY\_LOCAL\_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\2\MySqlDumpPath имеет значение "c:\mysqldump\mysqldump.exe".

RemoteAppNotFound

Диагностика: не удалось найти удаленное приложение. Это может произойти, если попытаться выполнить дамп remotesite/remoteapp, где "remoteapp" не существует.

Решение. Укажите имя удаленного приложения, которое фактически существует

FileOrFolderNotFound

Диагностика: это может произойти, если вы попытаетесь выполнить setAcl в файле или папке, которая не существует.

Решение. Укажите файл или папку, которая существует.

ERROR_DESTINATION_INVALID

Диагностика: неправильно введено имя компьютера или компьютер недоступен.

Решение. Попробуйте проверить, является ли имя компьютера допустимым. Попробуйте проверить связь с компьютером вручную.

ERROR_DESTINATION_NOT_REACHABLE

Диагностика: служба веб-управления или удаленный агент не установлены или недоступны на удаленном компьютере.

Решение. Убедитесь, что служба удаленного агента или веб-служба управления запущены на удаленном компьютере в зависимости от того, к какому из них вы подключаетесь. Чтобы убедиться, что эти службы запущены, можно выполнить net start wmsvc & net start msdepsvc на удаленном компьютере. Кроме того, убедитесь, что брандмауэр не прерывает обмен данными с назначением.

ERROR_USER_UNAUTHORIZED

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

  • Пользователь не существует
  • У пользователя нет доступа диспетчера IIS к сайту при подключении с помощью веб-службы управления
  • Сайт не существует
  • Неправильный пароль

Решение. При подключении с помощью веб-службы управления:

  • Убедитесь, что имя пользователя и пароль верны
  • Убедитесь, что сайт существует
  • Убедитесь, что у пользователя есть разрешения диспетчера IIS для области сайта.

Решение. При подключении с помощью службы удаленных агентов:

  • Убедитесь, что имя пользователя и пароль верны
  • Убедитесь, что указанная учетная запись пользователя является членом группы "Администраторы" на удаленном компьютере. ПРИМЕЧАНИЕ. Если вы не используете встроенный администратор, создайте новую группу с именем MSDepSvcUsers и добавьте нового администратора в эту группу.
  • Убедитесь, что сайт существует

ERROR_USER_NOT_ADMIN

Диагностика. Это происходит, если вы попытаетесь подключиться к службе удаленного агента, но не предоставили соответствующие учетные данные администратора.

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

  • Создайте отдельную группу пользователей MSDepSvcUsers на удаленном компьютере.
  • Создайте локальную учетную запись A на обоих локальных & удаленных компьютерах.
  • Добавьте A в MSDepSvcUsers на удаленном компьютере.
  • Используйте учетную запись A для публикации. Это позволит вам публиковать без использования встроенной учетной записи администратора.

ERROR_CERTIFICATE_VALIDATION_FAILED

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

Решение. Установите доверенный сертификат в конечной точке или попробуйте обойти проверку сертификата.

  • В командной строке msdeploy.exe это можно сделать, передав флаг -allowUntrusted.
  • В пользовательском интерфейсе публикации Visual Studio 2010 можно установить флажок "Разрешить ненадежный"
  • Из пакета развертывания Visual Studio 2010 (например, MyApp.deploy.cmd) можно передать флаг -allowUntrusted
  • Добавьте <AllowUntrustedCertificate>true</AllowUntrustedCertificate> в pubxml-файл:
<PropertyGroup>
  <AllowUntrustedCertificate>true</AllowUntrustedCertificate>
</PropertyGroup>

ERROR_PROXY_GATEWAY

Диагностика. Прокси-шлюз не позволяет веб-развертыванию взаимодействовать с удаленной конечной точкой веб-развертывания.

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

  • Запуск Internet Explorer
  • Выбор параметров "Сервис">
  • Щелкните "Подключение"
  • Щелкните "Параметры локальной сети"
  • Отключить все флажки

ERROR_SITE_DOES_NOT_EXIST

Диагностика: указанный сайт IIS не существует.

Решение. Убедитесь, что указанный сайт действительно существует.

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

ERROR_APP_DOES_NOT_EXIST

Диагностика: указанное приложение не существует в IIS.

Решение. Проверьте диспетчер IIS, чтобы убедиться, что вы правильно указали имя пути приложения.

ERROR_USER_NOT_AUTHORIZED_FOR_IISAPP,

ERROR_USER_NOT_AUTHORIZED_FOR_DBFULLSQL,
ERROR_USER_NOT_AUTHORIZED_FOR_DBMYSQL,
ERROR_USER_NOT_AUTHORIZED_FOR_SETACL,
ERROR_USER_NOT_AUTHORIZED_FOR_APPPOOLNETFX,
ERROR_USER_NOT_AUTHORIZED_FOR_APPPOOLPIPELINE,
ERROR_USER_NOT_AUTHORIZED_FOR_RECYCLEAPP,
ERROR_USER_NOT_AUTHORIZED_FOR_CREATEAPP,
ERROR_USER_NOT_AUTHORIZED_FOR_CONTENTPATH

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

Диагностика: пользователь, не являющийся администратором, пытался выполнить операцию с поставщиком веб-развертывания, для которого пользователь в настоящее время не авторизован.

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

ERROR_USER_NOT_AUTHORIZED_FOR_DEPLOYMENTPROVIDER

Диагностика: пользователь, не являющийся администратором, пытался выполнить операцию с поставщиком веб-развертывания, для которого пользователь в настоящее время не авторизован. Этот код ошибки возникает, если пользователь пытается выполнить операцию с поставщиком, для которого программа установки Web Deploy 2.0 не создает правило делегирования.

Решение. Настройка веб-развертывания 2.0 не создает правило делегирования для этого поставщика. Создайте правило делегирования вручную.

ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER

Диагностика: этот код ошибки может отображаться при подключении через службу веб-управления от имени администратора:

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

Решение. Предоставьте соответствующий полный доступ учетной записи в корневой папке сайта. Еще один вариант:

  • Запустите диспетчер IIS и щелкните правой кнопкой мыши сайт, на который имеется вопрос
  • Нажмите кнопку "Развернуть > настройку для публикации веб-развертывания"
  • Выберите соответствующее имя пользователя
  • Нажмите кнопку "Настройка"

ERROR_INSUFFICIENT_ACCESS_TO_APPHOSTCONFIG

Диагностика. Для удостоверения запуска от имени, указанного для правила делегирования createApp, требуется доступ на запись к файлу applicationHost.config сервера IIS.

Решение. Предоставьте удостоверению запуска правила делегирования createApp доступ на запись в файл applicationHost.config сервера IIS.

ERROR_INVALID_CONNECTION_STRING

Диагностика: указана недопустимая строка подключения к базе данных, которая привела к неправильному выполнению поставщика dbFullSql или dbMySql. Это может произойти, если строка подключения имеет неправильный формат (например, Se v ver=localhost;...) или если строка подключения содержит ключи, которые целевой сервер базы данных не распознает.

Разрешение. Убедитесь, что строка подключения действительна.

ERROR_SQL_EXECUTION_FAILURE

Диагностика: произошел сбой выполнения скрипта SQL. Это может произойти для va

Решение. Это может произойти по ряду причин. Дополнительные сведения см. здесь.

ERROR_TYPE_NOT_FOUND_IN_ASSEMBLY

Диагностика: поставщик dbFullSql веб-развертывания требует серверных управляющих объектов версии 10 или более поздней.

Решение. Поставщик SQL не может работать из-за отсутствия зависимости. Убедитесь, что установлены управляющие объекты Microsoft SQL Server (версии 10 или более поздней).

ERROR_OBJECT_TO_BE_DELETED_DOES_NOT_EXIST

Диагностика: веб-развертывание первоначально обнаружило объект, который нужно удалить, но когда он пытался удалить его, он отсутствовал.

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

ERROR_APPPOOL_VERSION_MISMATCH

Диагностика. Версия исходного пула приложений отличается от версии пула приложений назначения.

Решение. Вы можете вручную изменить версии пула приложений в соответствии с исходным и целевым расположением или использовать поставщик apppoolnetfx, чтобы сделать это автоматически.

ERROR_CENTRAL_CERT_STORE_SETTINGS_CANNOT_BE_READ

Диагностика. Центральное хранилище сертификатов нельзя использовать в текущей конфигурации.

Решение. Необходимо убедиться, что вы используете IIS 8 или более поздней версии. Если вы используете msdeploy.exe на 64-разрядном сервере, убедитесь, что используется 64-разрядная версия исполняемого файла.

ERROR_CENTRAL_CERT_STORE_NOT_CONFIGURED_PROPERLY

Диагностика. Централизованное хранилище SSL-сертификатов либо не установлено, либо правильно настроено. Эта функция также не поддерживается в IIS 7.5 или более ранней версии.

Решение. Убедитесь, что сервер, с которым выполняется синхронизация или из нее, работает под управлением IIS 8 или более поздней версии. Также убедитесь, что централизованное хранилище SSL-сертификатов установлено и настроено на этом сервере.

ERROR_MISSING_REQUIRED_DEPENDENCIES

Диагностика. Поставщик AppHostAuthOverride требует IIS7 или более поздней версии.

Решение. Убедитесь, что измененный целевой сервер работает под управлением IIS7 или более поздней версии.

ERROR_COULD_NOT_CONNECT_TO_REMOTESVC

Диагностика. Веб-развертывание не может подключиться к удаленной службе.

Решение. Убедитесь, что:

  1. Вы можете выполнить связь с удаленным компьютером
  2. Служба msdepsvc или wmsvc запущена на удаленном сервере.
  3. Брандмауэр не блокирует входящие подключения портов в месте назначения. Если вы использовали установку по умолчанию, это будет 80 для msdepsvc и 8172 для wmsvc.

ERROR_FRAMEWORK_VERSIONS_DO_NOT_MATCH

Диагностика. Это может произойти, если выполняется синхронизация веб-сервера между двумя компьютерами с разными версиями .Net.

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

  1. Используйте параметр поставщика netFxVersion, чтобы указать веб-развертыванию, какие параметры .Net следует перенести. Ниже приведен пример командной строки, который заставляет веб-развертывание синхронизировать параметры .Net 2.0:

    msdeploy.exe -verb:sync -source:webserver,machineconfig32.netfxversion=2,machineconfig64.netfxversion=2,rootwebconfig32.netfxversion=2,rootwebconfig64.netfxversion=2 -dest:webserver,machineconfig32.netfxversion=2,machineconfig64.netfxversion=2,rootwebconfig32.netfxversion=2,rootwebconfig64.netfxversion=2,computername=destServername

  2. Запустите веб-развертывание в той же версии .NET между клиентом и сервером. На стороне клиента можно изменить порядок элемента поддерживаемой версииRuntime в %programfiles%\IIS\Microsoft Web Deploy V3\msdeploy.exe.config файле для версии .Net, указанной первым (см. пример этого поставщика gacInstall ). Это будет указывать версию .NET, которая будет загружена, при условии, что она установлена в вашей системе. На стороне сервера можно сделать то же самое для %programfiles%\IIS\microsoft web deploy\msdepsvc.exe.config. При изменении этого файла обязательно перезапустите службу веб-Deployment Agent (net stop msdepsvc & net start msdepsvc).

ERROR_HTTPCERT_BINDING_NOT_FOUND

Диагностика: не удалось найти указанную привязку.

Решение. Выполните команду netsh http show sslcert из командной строки, чтобы убедиться, что указанная привязка существует. Если он не найден, может потребоваться повторно создать его с помощью диспетчера IIS.

ERROR_INCORRECT_PARAMETER_TAG

Диагноз: передан неправильный тег параметра.

Решение: повторно запустите msdeploy с тегом SQL, SQLCE или MYSQL.

ERROR_INVALID_PATH

Диагностика: недопустимый путь поставщика.

Решение. В зависимости от используемого поставщика требуемый путь для поставщика может отличаться. Посетите страницу https://technet.microsoft.com/library/dd569040(WS.10).aspx , чтобы узнать больше о поставщике, который вы используете.

ERROR_INVALID_SETTING_SPECIFIED

Диагностика: указан недопустимый параметр поставщика.

Решение. Посетите Technet , чтобы узнать больше о используемом поставщике.

ERROR_INVALID_SETTING_VALUE_SPECIFIED

Диагностика: недопустимое значение параметра поставщика.

Решение. Посетите Technet , чтобы узнать больше о используемом поставщике.

ERROR_SNI_BINDINGS_NOT_SUPPORTED

Диагностика. Привязки SNI поддерживаются только в IIS 8 или более поздней версии.

Решение. Привязки SNI можно создавать только в IIS 8 или более поздней версии.

ERROR_FAILED_TO_RESTORE_BACKUP

Диагностика. Веб-развертывание не удалось восстановить резервную копию.

Решение. Убедитесь, что:

  1. Указанная резервная копия существует на сервере.
  2. Если в резервной копии есть база данных, указанная строка подключения в параметре поставщика строки подключения.

ERROR_BACKUPS_ARE_NOT_CONFIGURED_PROPERLY

Диагностика. Функция резервного копирования настроена неправильно на целевом сервере.

Решение. Проверьте журналы событий на наличие указаний о неправильной настройке параметров. Убедитесь, что параметры, хранящиеся в файле applicationHost.config, соответствуют BackupManagerSchema.xml файла схемы IIS.

ERROR_CANNOT_CREATE_BACKUP

Диагностика. Веб-развертывание не удалось создать новую резервную копию на целевом сервере.

Решение. Убедитесь, что:

  1. Если вы выполняете синхронизацию поставщика appHostConfig, путь к поставщику не пуст.
  2. Если в манифесте есть несколько поставщиков, которые используют виртуальные пути, убедитесь, что все пути указывают на одно приложение.
  3. Если выполняется резервное копирование вручную, убедитесь, что функция включена в параметрах резервного копирования сервера.
  4. Проверьте журналы событий сервера, если сообщение об ошибке, возвращенное клиенту, не содержит достаточно информации.

ERROR_SETTING_IS_READ_ONLY

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

Решение. Администратор сервера должен пометить параметр резервного копирования как settable в файле applicationHost.config путем обновления файла вручную или с помощью скриптов PowerShell веб-развертывания.

ERROR_FILE_IN_USE

Диагностика: целевой файл не может быть перезаписан или удален, так как он используется в настоящее время.

Решение. Убедитесь, что целевой файл не используется перед выполнением синхронизации. Если вы синхронизируете содержимое с веб-сайтом, размещенным в IIS 7 или более поздней версии (с помощью поставщиков appHostConfig, iisApp или contentPath), рассмотрите возможность отключения приложения во время синхронизации, включив правило appOffline.

Правило appOffline можно настроить в профиле публикации (PUBXML). EnableMSDeployAppOffline Добавьте элемент в PropertyGroup следующим образом:

<PropertyGroup>
  <EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
</PropertyGroup>

ERROR_FAILED_TO_BRING_APP_ONLINE

Диагностика. После завершения синхронизации веб-развертывание не удалось удалить файл app_offline.htm с сайта.

Решение. Вы можете повторно запустить синхронизацию с включенным правилом appOffline или вручную удалить файл app_offline.htm из корневого каталога сайта на целевом сервере. Дополнительные сведения о причине сбоя см. в журналах событий сервера.

Правило appOffline можно настроить в профиле публикации (PUBXML). EnableMSDeployAppOffline Добавьте элемент в PropertyGroup следующим образом:

<PropertyGroup>
  <EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
</PropertyGroup>

ERROR_HIGHER_FXVERSION_REQUIRED

Диагностика. Веб-развертывание не удалось выполнить синхронизацию с помощью подключения выделенного администратора SQL (DAC), так как для приложения уровня данных SQL требуется .Net 4.0.

Решение. Убедитесь, что сервер, выполняющий подключение к SQL с помощью приложения уровня данных, установлен .Net 4.0. Если вы подключаетесь с помощью клиента msdeploy.exe, убедитесь, что он содержит .Net 4.0 в качестве первого варианта в файле msdeploy.exe.config. Если вы подключаетесь к конечной точке сервера msdepsvc (веб-служба Deployment Agent), убедитесь, что она содержит .Net 4.0 в качестве первого варианта в файле msdepsvc.exe.config.

ERROR_MAX_NUM_APPLICATIONS_EXCEEDED

Диагностика: вы создали больше веб-приложений, чем разрешено на целевом сервере.

Решение. Запросите больше приложений от администратора сервера или удалите некоторые из существующих приложений.

ERROR_API_NOT_SUPPORTED

Диагностика. Вызываемый API не существует на целевом сервере, так как сервер использует более раннюю версию веб-развертывания.

Решение. Установите последнюю версию веб-развертывания на сервере.

DacFxNeededForSQLProvider,

ERROR_SCRIPTDOM_NEEDED_FOR_SQL_PROVIDER,
ERROR_SQLCLRTYPES_NEEDED_FOR_SQL_PROVIDER

Группа из 3 ошибок, перечисленных выше, делится следующим диагнозом и разрешением:

Диагностика: приложение уровня данных SQL и его зависимости не установлены.

Решение. Используйте установщик веб-платформы для установки:

  1. Microsoft SQL Server 2012 Data-Tier Application Framework
  2. SQL Server 2012 Transact-SQL ScriptDom
  3. SQL Server системные типы CLR 11.0

ERROR_PACKAGE_TOO_LARGE

Диагностика. Размер создаваемого пакета или резервной копии превышает максимальный размер 4 ГБ.

Решение. При создании пакета используйте поставщик archiveDir. В настоящее время для этого ограничения нет решения относительно автоматического резервного копирования.

ERROR_TIMED_OUT

Диагностика: MySqlDump потребовалось слишком много времени, чтобы ответить на заданный запрос.

Решение. Вы можете изменить, как долго веб-развертывание ожидает возвращения MySqlDump из запроса, изменив значение параметров поставщика WaitAttemptsSettingInfo и WaitIntervalSettingInfo.

ERROR_ASSEMBLY_NOT_FOUND

Диагностика: не удалось загрузить необходимые зависимости.

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

ERROR_SMO_NEEDED_FOR_SQL_PROVIDER,

ERROR_USER_NOT_AUTHORIZED_FOR_IISAPP,
ERROR_SCRIPTER_NEEDED_FOR_SQLCE_PROVIDER

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

Диагностика. Общие объекты управления SQL (SMO) не найдены или установленная версия слишком старая.

Решение. Установите последнюю версию SMO с помощью установщика веб-платформы.

ERROR_CANNOT_CONNECT_TO_DATABASE

Диагностика: не удалось подключиться к базе данных.

Решение. Убедитесь, что:

  1. Строка подключения должна быть указана правильно.
  2. Учетная запись, указанная в строке подключения, имеет доступ к базе данных.
  3. Сервер базы данных, к которому вы подключаетесь, разрешает удаленные подключения.
  4. Доступ к серверу базы данных можно получить с компьютера, на котором выполняется веб-развертывание. Если вы подключаетесь к удаленному серверу веб-развертывания и указали базу данных, необходимо убедиться, что удаленный сервер веб-развертывания имеет доступ к базе данных.

ERROR_DACPAC_EXTRACTION_TIMEDOUT

Диагностика: действие PAC уровня данных заняло слишком много времени.

Решение. Увеличьте время, которое веб-развертывание ожидает завершения команды, указав параметр поставщика CommandTimeout.

ERROR_NOT_SUPPORTED

Диагностика. Веб-сайты Azure не поддерживают создание новых виртуальных приложений или изменение существующей конфигурации приложений на сервере во время операции публикации веб-развертывания.

Решение. Вы можете создать новые виртуальные приложения или изменить существующие параметры конфигурации для сайта с помощью портал Azure (manage.windowsazure.com). Для этого войдите на портал, откройте параметры сайта и перейдите на вкладку "Настройка". После этого необходимо изменить сайт в соответствии с параметрами конфигурации приложения, которое вы пытаетесь развернуть. В большинстве случаев это просто вопрос изменения версии .Net Framework, но в некоторых случаях это также может потребовать добавления нового виртуального приложения.

ERROR_EXCEPTION_WHILE_CREATING_OBJECT

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

ERROR_EXECUTING_METHOD

Универсальный код ошибки, указывающий на то, что возникла проблема с публикацией базы данных. Как правило, трассировка стека и сообщение, связанные с этим кодом, должны указывать на фактическую ошибку, возникаемую объектами управления SQL или SQL Data-Tier Application Framework.