Коды ошибок веб-развертывания
В некоторых распространенных случаях ошибок в веб-развертывании отображается код ошибки. В этой таблице объясняется, почему возникает ошибка, и действия, которые пользователь может предпринять, чтобы избежать ошибки. Обратите внимание, что сообщение об ошибке может отличаться в зависимости от способа вызова веб-развертывания, например, Microsoft WebMatrix выбирает отображение пользовательских сообщений об ошибках. Приведенные ниже сообщения об ошибках отображаются в командной строке и API msdeploy.exe:
MySqlDumpNotFound
Диагностика. Веб-развертывание не может найти исполняемый файл mysqldump.exe. Этот исполняемый файл необходим для развертываний базы данных MySQL.
Решение. Существует два обходных решения:
- Поместите исполняемый файл в
C:\Program Files\MySQL\MySQL Server 5.1\bin
- Задайте раздел реестра 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
Диагностика. Веб-развертывание не может подключиться к удаленной службе.
Решение. Убедитесь, что:
- Вы можете выполнить связь с удаленным компьютером
- Служба msdepsvc или wmsvc запущена на удаленном сервере.
- Брандмауэр не блокирует входящие подключения портов в месте назначения. Если вы использовали установку по умолчанию, это будет 80 для msdepsvc и 8172 для wmsvc.
ERROR_FRAMEWORK_VERSIONS_DO_NOT_MATCH
Диагностика. Это может произойти, если выполняется синхронизация веб-сервера между двумя компьютерами с разными версиями .Net.
Решение. По умолчанию веб-развертывание будет выполняться в версии .NET, указанной в файле конфигурации. Если версия .Net, используемая веб-развертыванием на клиенте, отличается от версии на сервере, мы заблокируем синхронизацию веб-сервера, чтобы предотвратить перенос параметров из разных версий .Net. Чтобы обойти эту проблему, у вас есть два варианта:
Используйте параметр поставщика 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
Запустите веб-развертывание в той же версии .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
Диагностика. Веб-развертывание не удалось восстановить резервную копию.
Решение. Убедитесь, что:
- Указанная резервная копия существует на сервере.
- Если в резервной копии есть база данных, указанная строка подключения в параметре поставщика строки подключения.
ERROR_BACKUPS_ARE_NOT_CONFIGURED_PROPERLY
Диагностика. Функция резервного копирования настроена неправильно на целевом сервере.
Решение. Проверьте журналы событий на наличие указаний о неправильной настройке параметров. Убедитесь, что параметры, хранящиеся в файле applicationHost.config, соответствуют BackupManagerSchema.xml файла схемы IIS.
ERROR_CANNOT_CREATE_BACKUP
Диагностика. Веб-развертывание не удалось создать новую резервную копию на целевом сервере.
Решение. Убедитесь, что:
- Если вы выполняете синхронизацию поставщика appHostConfig, путь к поставщику не пуст.
- Если в манифесте есть несколько поставщиков, которые используют виртуальные пути, убедитесь, что все пути указывают на одно приложение.
- Если выполняется резервное копирование вручную, убедитесь, что функция включена в параметрах резервного копирования сервера.
- Проверьте журналы событий сервера, если сообщение об ошибке, возвращенное клиенту, не содержит достаточно информации.
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 и его зависимости не установлены.
Решение. Используйте установщик веб-платформы для установки:
- Microsoft SQL Server 2012 Data-Tier Application Framework
- SQL Server 2012 Transact-SQL ScriptDom
- 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
Диагностика: не удалось подключиться к базе данных.
Решение. Убедитесь, что:
- Строка подключения должна быть указана правильно.
- Учетная запись, указанная в строке подключения, имеет доступ к базе данных.
- Сервер базы данных, к которому вы подключаетесь, разрешает удаленные подключения.
- Доступ к серверу базы данных можно получить с компьютера, на котором выполняется веб-развертывание. Если вы подключаетесь к удаленному серверу веб-развертывания и указали базу данных, необходимо убедиться, что удаленный сервер веб-развертывания имеет доступ к базе данных.
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.