Web 部署错误代码

适用于: Internet Information Services 7.0、Internet Information Services 7.5、Internet Information Services 8.0

对于某些常见错误情况,Web 部署会显示错误消息。 本文介绍显示错误消息的原因,并提供避免错误的步骤。 错误消息可能有所不同,具体取决于 Web 部署的启动方式。 例如,Microsoft WebMatrix 选择显示自定义错误消息。 下面几节中列出的错误消息显示在 msdeploy.exe 命令行和 API 上:

MySqlDumpNotFound

诊断

Web 部署可能找不到 mysqldump.exe 可执行文件。 MySQL 数据库部署需要此可执行文件。

解决方案

可以尝试以下任一解决方法:

  • 将可执行文件放在 中 C:\Program Files\MySQL\MySQL Server\bin
  • REG_SZ 注册表项设置为指向可执行文件。 例如,将 设置为HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\<version>\MySqlDumpPathc:\mysqldump\mysqldump.exe

RemoteAppNotFound

诊断

找不到远程应用程序。 如果尝试转储“remotesite/remoteapp”实际上不存在,则会发生此错误。

解决方案

指定实际存在的远程应用程序名称。

FileOrFolderNotFound

诊断

如果尝试对不存在的文件或文件夹执行 , SetAcl 则会发生此错误。

解决方案

指定存在的文件或文件夹。

ERROR_DESTINATION_INVALID

诊断

计算机名称键入错误,或者无法访问计算机。

解决方案

如果计算机名称有效,请尝试检查。 尝试手动 ping 计算机。

ERROR_DESTINATION_NOT_REACHABLE

诊断

远程计算机上未安装或无法访问 Web 管理服务或远程代理。

解决方案

验证远程代理服务或 Web 管理服务是否已在远程计算机上启动,具体取决于要连接到哪个计算机。 可以在远程计算机上执行 net start wmsvcnet start msdepsvc 以确保启动这些服务。 此外,请确保防火墙不会中断与目标的通信。

ERROR_USER_UNAUTHORIZED

诊断

此错误代码可能由于各种原因而显示。 它通常指示身份验证或授权问题,并且可能由于以下任一原因而发生:

  • 用户不存在。
  • 如果使用 Web 管理服务进行连接,则用户无权访问站点。
  • 网站不存在。
  • 密码不正确。

解决方案

若要使用 Web 管理服务进行连接,请执行以下步骤:

  1. 验证用户名和密码是否正确。
  2. 验证站点是否存在。
  3. 验证是否具有对站点范围的 IIS 管理器权限。

若要使用远程代理服务进行连接,请执行以下步骤:

  1. 验证用户名和密码是否正确。

  2. 验证指定的用户帐户是否是远程计算机上的 Administrators 组的成员。

    注意

    如果不使用内置管理员,请创建一个名为“MSDepSvcUsers”组的新组,并将新管理员添加到该组。

  3. 验证站点是否存在。

ERROR_USER_NOT_ADMIN

诊断

如果尝试连接到远程代理服务但尚未提供适当的管理员凭据,将显示ERROR_USER_NOT_ADMIN代码。

解决方案

远程代理服务接受内置管理员或域管理员凭据。 如果你有非域设置,并且想要使用内置管理员以外的帐户,请执行以下步骤:

  1. 在远程计算机上创建单独的用户组 MSDepSvcUsers
  2. 在本地和远程计算机上创建本地帐户 A
  3. 在远程计算机上添加到 AMSDepSvcUsers
  4. 使用帐户 A 进行发布,这使你无需内置管理员帐户即可发布。

ERROR_CERTIFICATE_VALIDATION_FAILED

诊断

Web 部署终结点提供的证书不受信任或无效。 如果远程服务器具有远程代理服务或 Web 管理服务的自签名证书,则通常会发生这种情况。

解决方案

在终结点上安装受信任的证书,或尝试绕过证书验证。

  1. msdeploy.exe 命令行传递 -allowUntrusted 标志。

  2. 在 Visual Studio 发布 UI 中,检查 Allow Untrusted

  3. 从 Visual Studio 部署包 (例如, MyApp.deploy.cmd) 传递 标志 -allowUntrusted

  4. 添加到 <AllowUntrustedCertificate>true</AllowUntrustedCertificate> pubxml 文件:

    <PropertyGroup>
      <AllowUntrustedCertificate>true</AllowUntrustedCertificate>
    </PropertyGroup>
    

ERROR_PROXY_GATEWAY

诊断

代理网关阻止 Web 部署与远程 Web 部署终结点通信。

解决方案

Web 部署不会读取系统代理设置。 解决方法是尝试通过执行以下步骤禁用系统代理:

  1. 启动 Internet Explorer。
  2. 选择“工具”>“选项”
  3. 选择“连接”。
  4. 选择 “LAN 设置”。
  5. 禁用所有复选框。

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

列出的错误组共享以下诊断、解决方法和解决方法:

诊断

非管理用户尝试使用用户当前未授权的 Web 部署提供程序执行操作。

解决方案

默认情况下,Web 部署设置会创建管理服务委派规则,允许非管理员使用此提供程序执行操作。 检查此提供程序所需的委派规则是否已正确设置。

解决方法

“程序”>中控制面板,在 Web 部署上运行“修复”。 或者, 手动创建委托规则。

ERROR_USER_NOT_AUTHORIZED_FOR_DEPLOYMENTPROVIDER

诊断

非管理用户尝试使用用户当前未授权的 Web 部署提供程序执行操作。 如果尝试使用 Web 部署的设置未为其创建委派规则的提供程序执行操作,将显示此错误代码。

解决方案

Web 部署设置不会为此提供程序创建委派规则。 手动创建委派规则。

ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER

诊断

尝试以非管理员身份通过 Web 管理服务进行连接时,可能会出现此错误:

  • 若要使用 IIS 管理器凭据进行连接,Web 管理服务的标识 (通常为本地服务) 需要对站点的根文件夹拥有完全控制权限才能在下方创建文件和文件夹。
  • 若要使用 Windows 凭据进行连接,Windows 用户需要完全控制站点的根文件夹才能创建文件和文件夹。

解决方案

对站点的根文件夹授予相应的帐户“完全控制”。 或者,执行以下步骤:

  1. 启动 IIS 管理器 ,然后右键单击有问题的站点。
  2. 为 Web 部署发布单击>“部署配置”。
  3. 选择适当的用户名。
  4. 单击“设置”

ERROR_INSUFFICIENT_ACCESS_TO_APPHOSTCONFIG

诊断

为 createApp 委派规则指定的 RunAs 标识需要对 IIS 服务器的 applicationHost.config 文件进行写入访问。

解决方案

为 createApp 委派规则的 RunAs 标识提供对 IIS 服务器的 applicationHost.config 文件的写入访问权限。

ERROR_INVALID_CONNECTION_STRING

诊断

指定的数据库连接字符串无效,导致 dbFullSqldbMySql 提供程序无法正确运行。 如果连接字符串格式不正确, (示例,Se v ver=localhost;...) ,或者如果连接字符串包含目标数据库服务器无法识别的键,则会发生此错误。

解决方案

验证连接字符串是否有效。

ERROR_SQL_EXECUTION_FAILURE

诊断

发生 SQL 脚本执行失败。

解决方案

发生此错误的原因有很多。 有关详细信息,请参阅 Windows 上的 Web 开发

ERROR_TYPE_NOT_FOUND_IN_ASSEMBLY

诊断

dbFullSql Web 部署的提供程序需要服务器管理对象版本 10 或更高版本。

解决方案

由于缺少依赖项,SQL 提供程序无法运行。 请确保已安装 Microsoft SQL Server管理对象 (版本 10 或更高版本) 。

ERROR_OBJECT_TO_BE_DELETED_DOES_NOT_EXIST

诊断

Web 部署最初找到要删除的对象,但在尝试删除该对象时,该对象丢失。

解决方案

请确保在执行同步时没有其他外部进程正在修改目标。

ERROR_APPPOOL_VERSION_MISMATCH

诊断

源应用程序池版本不同于目标应用程序池版本。

解决方案

可以手动更改应用程序池版本以匹配源和目标,或使用 apppoolnetfx 提供程序自动执行此操作。

ERROR_CENTRAL_CERT_STORE_SETTINGS_CANNOT_BE_READ

诊断

中央证书存储不能在当前配置中使用。

解决方案

需要确保使用的是 IIS 8 或更高版本。 如果在 64 位服务器上运行 msdeploy.exe ,请确保使用 64 位版本的可执行文件。

ERROR_CENTRAL_CERT_STORE_NOT_CONFIGURED_PROPERLY

诊断

未正确安装或未正确设置集中式 SSL 证书存储。 IIS 7.5 或更早版本也不支持此功能。

解决方案

验证要同步到或从中同步的服务器是否正在运行 IIS 8 或更高版本。 此外,请验证是否已在该服务器上安装和配置集中式 SSL 证书存储。

ERROR_MISSING_REQUIRED_DEPENDENCIES

诊断

AppHostAuthOverride 提供程序需要 IIS 7 或更高版本。

解决方案

确保正在修改的目标服务器正在运行 IIS 7 或更高版本。

ERROR_COULD_NOT_CONNECT_TO_REMOTESVC

诊断

Web 部署无法连接到远程服务。

解决方案

确保:

  • 可以 ping 远程计算机。
  • msdepsvc 远程服务器上启动 或 wmsvc 服务。
  • 防火墙不会阻止目标上端口的传入连接。 如果使用了默认安装,则 为 80,对于 msdepsvcwmsvc为 8172。

ERROR_FRAMEWORK_VERSIONS_DO_NOT_MATCH

诊断

如果在安装了不同版本的 .NET 的两台计算机之间执行 Web 服务器同步,则可能会出现ERROR_FRAMEWORK_VERSIONS_DO_NOT_MATCH错误。

解决方案

默认情况下,Web 部署首选使用其配置文件中指定的 .NET 版本。 如果 Web 部署在客户端上使用的 .NET 版本与服务器上的版本不同,则会阻止 Web 服务器同步,以防止迁移不同版本的 .NET 的设置。 若要解决此问题,有两个选项:

  1. netFxVersion使用提供程序设置确切地通知 Web 部署要迁移的 .NET 设置。 下面是一个命令行示例,该示例强制 Web 部署同步 .NET 设置:

    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 运行 Web 部署。 在客户端上,更改 文件中 %programfiles%\IIS\Microsoft Web Deploy V3\msdeploy.exe.config .NET 版本元素的顺序supportedRuntime(指定了第一个) (请参阅 gacInstall 提供程序获取示例) 。 这表示 .NET 的版本,假设它已安装在系统上。 在服务器端,你可以对 执行相同的操作 %programfiles%\IIS\microsoft web deploy\msdepsvc.exe.config。 如果修改此文件,请确保重启 和 的 Web 部署代理服务net stop msdepsvcnet start msdepsvc

ERROR_HTTPCERT_BINDING_NOT_FOUND

诊断

找不到指定的绑定。

解决方案

从命令行运行 netsh http show sslcert 以验证指定的绑定是否存在。 如果未找到它,则可能需要通过 IIS 管理器重新创建它。

ERROR_INCORRECT_PARAMETER_TAG

诊断

传递的参数标记不正确。

解决方案

使用 SQL、SQLCE 或 MYSQL 标记重新运行 Microsoft 部署。

ERROR_INVALID_PATH

诊断

提供程序路径无效。

解决方案

提供程序的路径可能因所使用的提供程序而异。 有关所使用的提供程序的详细信息,请参阅 Web 部署 提供程序。

ERROR_INVALID_SETTING_SPECIFIED

诊断

指定的提供程序设置无效。

解决方案

有关所使用的提供程序的详细信息,请参阅 Web 部署 提供程序。

ERROR_INVALID_SETTING_VALUE_SPECIFIED

诊断

提供程序设置值无效。

解决方案

有关所使用的提供程序的详细信息,请参阅 Web 部署 提供程序。

ERROR_SNI_BINDINGS_NOT_SUPPORTED

诊断

SNI 绑定仅在 IIS 8 或更高版本上受支持。

解决方案

只能在 IIS 8 或更高版本上创建 SNI 绑定。

ERROR_FAILED_TO_RESTORE_BACKUP

诊断

Web 部署无法还原备份。

解决方案

验证以下几点:

  • 指定的备份存在于服务器上。
  • 如果备份中存在数据库,则会在连接字符串提供程序设置中指定连接字符串。

ERROR_BACKUPS_ARE_NOT_CONFIGURED_PROPERLY

诊断

备份功能未在目标服务器上正确配置。

解决方案

在事件日志中查看有关配置错误的设置的提示。 验证 存储在applicationHost.config 文件中的设置是否符合 IIS 架构文件 BackupManagerSchema.xml

ERROR_CANNOT_CREATE_BACKUP

诊断

Web 部署未能在目标服务器上创建新备份。

解决方案

验证:

  • 如果要执行 appHostConfig 提供程序同步,请确保提供程序的路径不为空。
  • 如果清单中有多个使用虚拟路径的提供程序,请确保所有路径都指向同一应用程序。
  • 如果要执行手动备份,请确保在服务器备份设置中启用该功能。
  • 如果返回给客户端的错误消息不包含所需信息,请检查服务器事件日志。

ERROR_SETTING_IS_READ_ONLY

诊断

尝试设置的备份设置标记为只读,无法设置。

解决方案

服务器管理员需要通过手动更新文件或使用 Web 部署的 PowerShell 脚本,在 applicationHost.config 文件中将备份设置标记为“可设置”。

ERROR_FILE_IN_USE

诊断

无法覆盖或删除目标文件,因为它当前正在使用中。

解决方案

在执行同步之前,请确保目标文件未使用。如果要使用 appHostConfigiisAppcontentPath 或 提供程序) 将内容同步到 IIS 7 或更高版本 (上托管的网站,请考虑通过启用appOffline规则在同步期间使应用程序脱机。

可以在发布配置文件中配置规则 appOffline , (.pubxml) 。 将 EnableMSDeployAppOffline 元素添加到 , PropertyGroup 如下所示:

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

ERROR_FAILED_TO_BRING_APP_ONLINE

诊断

同步完成后,Web 部署无法从站点中删除 app_offline.htm 文件。

解决方案

可以在启用规则的情况下 appOffline 重新运行同步,也可以从目标服务器上的站点根目录中手动删除 app_offline.htm 文件。 有关失败原因的详细信息,检查服务器事件日志。

可以在发布配置文件中配置规则 appOffline , (.pubxml) 。 将 EnableMSDeployAppOffline 元素添加到 , PropertyGroup 如下所示:

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

ERROR_HIGHER_FXVERSION_REQUIRED

诊断

Web 部署无法使用 SQL 专用管理员连接 (DAC) 执行同步,因为 SQL DAC 需要 .NET 4.0。

解决方案

确保使用 DAC 建立 SQL 连接的服务器已安装 .NET 4.0。 如果使用 msdeploy.exe 客户端进行连接,请确保它已将 .NET 4.0 列为 msdeploy.exe 配置文件中的第一个选项。 如果要连接到msdepsvc服务器终结点 (Web 部署代理服务) ,请确保它已将 .NET 4.0 列为配置文件中的msdepsvc.exe第一个选项。

ERROR_MAX_NUM_APPLICATIONS_EXCEEDED

诊断

你创建的 Web 应用程序超出了目标服务器上允许的数。

解决方案

向服务器管理员请求更多应用程序或删除一些现有应用程序。

ERROR_API_NOT_SUPPORTED

诊断

被调用的 API 在目标服务器上不存在,因为该服务器使用的是早期版本的 Web 部署。

解决方案

在服务器上安装最新版本的 Web 部署。

DacFxNeededForSQLProvider、ERROR_SCRIPTDOM_NEEDED_FOR_SQL_PROVIDER、ERROR_SQLCLRTYPES_NEEDED_FOR_SQL_PROVIDER

三个错误组共享以下诊断和解决方法:

诊断

未安装 SQL DAC 及其依赖项。

解决方案

使用 Web 平台安装程序安装:

  • Microsoft SQL Server 2012 Data-Tier Application Framework
  • SQL Server 2012 Transact-SQL ScriptDom
  • SQL Server系统 CLR 类型 11.0

ERROR_PACKAGE_TOO_LARGE

诊断

正在创建的包或备份超过 4 GB 的最大大小。

解决方案

在创建包时改 archiveDir 用提供程序。 现在,对于自动备份,此限制没有解决方案。

ERROR_TIMED_OUT

诊断

MySqlDump 花费了太长时间才响应给定的查询。

解决方案

可以通过更改 和 WaitIntervalSettingInfo 提供程序设置的值WaitAttemptsSettingInfo,更改 Web 部署等待 MySqlDump 从查询返回的时间。

ERROR_ASSEMBLY_NOT_FOUND

诊断

无法加载所需的依赖项。

解决方案

如果通过 MSI 手动安装了 Web 部署,请尝试使用 Web 平台安装程序重新安装 Web 部署,这有助于安装所需的依赖项。

ERROR_SMO_NEEDED_FOR_SQL_PROVIDER、ERROR_USER_NOT_AUTHORIZED_FOR_IISAPP、ERROR_SCRIPTER_NEEDED_FOR_SQLCE_PROVIDER

错误代码ERROR_SMO_NEEDED_FOR_SQL_PROVIDER、ERROR_USER_NOT_AUTHORIZED_FOR_IISAPP和ERROR_SCRIPTER_NEEDED_FOR_SQLCE_PROVIDER代码共享以下诊断和解决方法:

诊断

SQL 共享管理对象 (找不到 SMO) 或已安装的版本太旧。

解决方案

使用 Web 平台安装程序安装最新版本的 SMO。

ERROR_CANNOT_CONNECT_TO_DATABASE

诊断

发生此错误的原因是无法与数据库建立连接。

解决方案

验证:

  • 连接字符串正确。
  • 连接字符串中指定的帐户有权访问数据库。
  • 要连接到的数据库服务器允许远程连接。
  • 可以从运行 Web 部署的计算机访问数据库服务器。 如果要连接到远程 Web 部署服务器并指定了数据库,则需要确保远程 Web 部署服务器有权访问数据库。

ERROR_DACPAC_EXTRACTION_TIMEDOUT

诊断

DAC PAC 操作花费的时间太长,无法完成。

解决方案

通过指定提供程序设置,增加 Web 部署等待命令完成的时间 CommandTimeout

ERROR_NOT_SUPPORTED

诊断

Azure 网站不支持在 Web 部署发布操作期间创建新的虚拟应用程序或修改服务器上的现有应用程序配置。

解决方案

可以通过Azure 门户 (https://portal.azure.com/) 创建新的虚拟应用程序或修改网站的现有配置设置。 为此,

  1. 登录到门户。
  2. 打开网站设置。
  3. 选择“ 配置 ”选项卡。
  4. 在“ 配置 ”选项卡中,修改站点以匹配尝试部署的应用程序的配置设置。 在大多数情况下,这只是更改.NET Framework版本的问题,但在某些情况下,这可能还需要添加新的虚拟应用程序。

ERROR_EXCEPTION_WHILE_CREATING_OBJECT

通常,这表示验证源上的提供程序存在问题。 例如,如果尝试从源文件共享同步内容,但无权访问文件共享,可能会看到此错误代码。 对于此类问题,请确保有权访问要从其发布的所有源数据。

ERROR_EXECUTING_METHOD

一个泛型错误代码,指示发布数据库时出现问题。 通常,与此代码关联的堆栈跟踪和消息应指示 SQL 管理对象或 SQL Data-Tier Application Framework 引发的实际错误。