Web Deploy 錯誤碼
作者 :Bilal Aslam
針對特定常見的錯誤案例,Web Deploy 會顯示錯誤碼。 下表說明錯誤發生的原因,以及使用者可採取的步驟來避免錯誤。 請注意,視叫用 Web 部署的方式而定,錯誤訊息可能會有所不同,例如 Microsoft WebMatrix 選擇顯示自訂錯誤訊息。 下面所列的錯誤訊息會顯示在命令列和 API msdeploy.exe:
MySqlDumpNotFound
診斷:Web Deploy 找不到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
診斷:電腦名稱稱輸入錯誤,或無法連線到電腦。
解決方法:嘗試檢查 computername 是否有效。 嘗試手動 Ping 電腦。
ERROR_DESTINATION_NOT_REACHABLE
診斷:遠端電腦上未安裝或無法連線到 Web 管理服務或遠端代理程式。
解決方案:根據您連線到的遠端電腦,確認遠端代理程式服務或 Web 管理服務已啟動。 您可以在遠端電腦上執行「net start wmsvc & net start msdepsvc」,以確保這些服務已啟動。 此外,請確定防火牆不會中斷與目的地的通訊。
ERROR_USER_UNAUTHORIZED
診斷:此錯誤碼可能會因為許多不同原因而呈現。 它通常表示驗證或授權問題,而且可能會因為下列任何原因而發生:
- 使用者不存在
- 如果使用者使用 Web 管理服務連線,則沒有月臺的 IIS 管理員存取權
- 網站不存在
- 密碼不正確
解決方式:如果使用 Web 管理服務進行連線:
- 確認使用者名稱和密碼是否正確
- 確認網站是否存在
- 確認使用者具有網站範圍的 IIS 管理員許可權
解決方式:如果使用遠端代理程式服務進行連線:
- 確認使用者名稱和密碼是否正確
- 確認您指定的使用者帳戶是遠端電腦上的 Administrators 群組成員。 注意:如果您未使用內建系統管理員,請建立名為 「MSDepSvcUsers」 群組的新群組,並將新的系統管理員新增至該群組。
- 確認網站是否存在
ERROR_USER_NOT_ADMIN
診斷:如果您嘗試連線到遠端代理程式服務,但尚未提供適當的系統管理員認證,就會發生這種情況。
解決方案:遠端代理程式服務接受內建的系統管理員或網域系統管理員認證。 如果您有非網域設定,而且想要使用內建系統管理員的其他帳戶,請執行下列動作:
- 在遠端電腦上建立個別的使用者群組 MSDepSvcUsers。
- 在本機 & 遠端電腦上建立本機帳戶 A。
- 將 A 新增至遠端電腦上的 MSDepSvcUsers。
- 使用帳戶 A 進行發佈,這可讓您發佈,而不需要使用內建的系統管理員帳戶。
ERROR_CERTIFICATE_VALIDATION_FAILED
診斷:Web Deploy 端點所提供的憑證不受信任或無效。 如果遠端伺服器具有遠端代理程式服務或 Web 管理服務的自我簽署憑證,通常會發生這種情況。
解決方案:在端點上安裝受信任的憑證,或嘗試略過憑證驗證。
- 從msdeploy.exe命令列,您可以傳遞 -allowUntrusted 旗標來執行此動作。
- 從 Visual Studio 2010 發佈 UI 中,您可以核取 [允許不受信任]
- 從 Visual Studio 2010 部署套件 (例如 MyApp.deploy.cmd) ,您可以傳遞 -allowUntrusted 旗標
- 將 新增
<AllowUntrustedCertificate>true</AllowUntrustedCertificate>
至 pubxml 檔案:
<PropertyGroup>
<AllowUntrustedCertificate>true</AllowUntrustedCertificate>
</PropertyGroup>
ERROR_PROXY_GATEWAY
診斷:Proxy 閘道防止 Web Deploy 與遠端 Web Deploy 端點通訊。
解決方案:Web Deploy 不會讀取系統 Proxy 設定。 因應措施是嘗試停用系統 Proxy:
- 啟動 Internet Explorer
- 按一下 [工具選項] >
- 按一下 [連線]
- 按一下 [LAN 設定]
- 停用所有核取方塊
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 Deploy 提供者執行作業。
解決方案:根據預設,Web Deploy 2.0 安裝程式會建立管理服務委派規則,以允許非系統管理員使用此提供者執行作業。 此提供者所需的委派規則可能尚未正確設定。
因應措施:從程式主控台,在 Web Deploy 2.0 上執行修復。 或者, 手動建立委派規則。
ERROR_USER_NOT_AUTHORIZED_FOR_DEPLOYMENTPROVIDER
診斷:非系統管理使用者嘗試使用目前未獲授權的 Web Deploy 提供者執行作業。 如果使用者嘗試使用 Web Deploy 2.0 安裝程式未建立委派規則的提供者執行作業,就會顯示此錯誤碼。
解決方案:Web Deploy 2.0 安裝程式不會為此提供者建立委派規則。 手動建立委派規則。
ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER
診斷:如果以非系統管理員身分透過 Web 管理服務連線,此錯誤碼可能會呈現:
- 如果使用 IIS 管理員認證進行連線,Web 管理服務的身分識別 (通常本機服務) 需要月臺根資料夾的完全控制許可權,才能在下方建立檔案和資料夾。
- 如果使用 Windows 認證進行連線,Windows 使用者必須完全控制網站的根資料夾,才能在下方建立檔案和資料夾。
解決方式:授與月臺根資料夾上適當的帳戶完全控制。 或者:
- 啟動 IIS 管理員,並以滑鼠右鍵按一下有問題的網站
- 按一下 [部署 Web 部署 > 發佈設定]
- 選取適當的使用者名稱
- 按一下 [設定]
ERROR_INSUFFICIENT_ACCESS_TO_APPHOSTCONFIG
診斷:為 createApp 委派規則指定的 RunAs 身分識別需要 IIS 伺服器applicationHost.config檔案的寫入權限。
解決方案:授與 createApp 委派規則的 RunAs 身分識別 IIS 伺服器applicationHost.config檔案的寫入權限。
ERROR_INVALID_CONNECTION_STRING
診斷:指定了不正確資料庫連接字串,導致 dbFullSql 或 dbMySql 提供者無法正確執行。 如果連接字串格式不正確, (例如 Se v ver=localhost;...) ,或連接字串包含目標資料庫伺服器無法辨識的索引鍵,就會發生這種情況。
解決方式:確認連接字串有效。
ERROR_SQL_EXECUTION_FAILURE
診斷:發生 SQL 腳本執行失敗。 va 可能發生此情況
解決方式:這可能會因為許多原因而發生。 請 在這裡閱讀更多內容。
ERROR_TYPE_NOT_FOUND_IN_ASSEMBLY
診斷:Web Deploy 的 dbFullSql 提供者需要伺服器管理物件 10 版或更高版本。
解決方案:SQL 提供者因為缺少相依性而無法執行。 請確認已安裝 Microsoft SQL Server 管理物件 (第 10 版或更新版本)。
ERROR_OBJECT_TO_BE_DELETED_DOES_NOT_EXIST
診斷:Web Deploy 原本發現要刪除的物件,但在嘗試刪除物件時,它遺失了。
解決方式:請確定沒有其他外部進程正在執行同步處理時修改目標。
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 提供者需要 IIS7 或更新版本。
解決方案:請確定您正在修改的目的地伺服器正在執行 IIS7 或更新版本。
ERROR_COULD_NOT_CONNECT_TO_REMOTESVC
診斷:Web Deploy 無法連線到遠端服務。
解決方案:確定:
- 您可以 Ping 遠端電腦
- msdepsvc 或 wmsvc 服務是在遠端伺服器上啟動。
- 您的防火牆不會封鎖目的地上端口的連入連線。 如果您使用預設安裝,則 msdepsvc 為 80,而 wmsvc 則為 8172。
ERROR_FRAMEWORK_VERSIONS_DO_NOT_MATCH
診斷:如果您在兩部已安裝不同 .Net 版本的機器之間執行網頁伺服器同步處理,就可能發生此情況。
解決方案:根據預設,Web Deploy 會偏好在其組態檔中指定的 .Net 版本中執行。 如果 Web Deploy 在用戶端上使用的 .Net 版本與伺服器上的版本不同,我們將封鎖 Web 服務器同步處理,以防止移轉不同 .Net 版本的設定。 若要解決此問題,您有兩個選項:
使用 netFxVersion 提供者設定來告訴 Web Deploy 要移轉的 .Net 設定。 以下是強制 Web Deploy 同步處理 .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 執行 Web Deploy。 在用戶端上,您可以針對第一個 (指定的 .Net 版本,變更檔案中
%programfiles%\IIS\Microsoft Web Deploy V3\msdeploy.exe.config
supportedRuntime 版本元素的順序,請參閱 gacInstall 提供者 ,以取得此) 範例。 這會指出將載入的 .Net 版本,假設它已安裝在您的系統上。 在伺服器端,您可以針對%programfiles%\IIS\microsoft web deploy\msdepsvc.exe.config
執行相同的動作。 如果您修改此檔案,請務必重新開機 Web Deployment Agent Service (net stop msdepsvc & net start msdepsvc) 。
ERROR_HTTPCERT_BINDING_NOT_FOUND
診斷:找不到指定的系結。
解決方式:從命令列執行 「netsh HTTP show sslcert」,以確認指定的系結是否存在。 如果找不到,您可能需要透過 IIS 管理員重新建立它。
ERROR_INCORRECT_PARAMETER_TAG
診斷:傳遞了不正確的參數標記。
解決方式:使用 SQL、SQLCE 或 MYSQL 標籤重新執行 msdeploy。
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
診斷:只有 IIS 8 或更新版本才支援 SNI 系結。
解決方案:SNI 系結只能在 IIS 8 或更新版本上建立。
ERROR_FAILED_TO_RESTORE_BACKUP
診斷:Web Deploy 無法還原備份。
解決方案:確認:
- 指定的備份存在於伺服器上。
- 如果備份內有資料庫,則連接字串會在連接字串提供者設定中指定。
ERROR_BACKUPS_ARE_NOT_CONFIGURED_PROPERLY
診斷:目的地伺服器上未正確設定備份功能。
解決方案:檢查事件記錄檔中是否有設定錯誤設定的提示。 驗證儲存在applicationHost.config檔案中的設定是否符合 IIS 架構檔案BackupManagerSchema.xml。
ERROR_CANNOT_CREATE_BACKUP
診斷:Web Deploy 無法在目的地伺服器上建立新的備份。
解決方案:確認:
- 如果您要執行 appHostConfig 提供者同步處理,提供者的路徑不是空的。
- 如果資訊清單中有多個提供者採用虛擬路徑,請確定所有路徑都指向相同的應用程式。
- 如果您要執行手動備份,請確定此功能已在伺服器備份設定中「開啟」。
- 如果傳回給用戶端的錯誤訊息未包含足夠的資訊,請檢查伺服器事件記錄檔。
ERROR_SETTING_IS_READ_ONLY
診斷:您嘗試設定的備份設定會標示為唯讀且無法設定。
解決方案:伺服器管理員必須手動更新檔案,或使用 Web Deploy 的 PowerShell 腳本,將備份設定標示為applicationHost.config檔案中的「可設定」。
ERROR_FILE_IN_USE
診斷:目的地檔案目前正在使用中,因此無法覆寫或刪除。
解決方法:在執行同步處理之前,請確定目的地檔案未使用中。如果您要使用 appHostConfig、iisApp 或 contentPath 提供者) 將內容同步處理至裝載于 IIS 7 或更新版本 (的網站,請考慮啟用 appOffline 規則在同步處理期間讓應用程式離線。
您可以在發佈設定檔 (.pubxml) 中設定 appOffline 規則。 將 EnableMSDeployAppOffline
元素新增至 PropertyGroup,如下所示:
<PropertyGroup>
<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
</PropertyGroup>
ERROR_FAILED_TO_BRING_APP_ONLINE
診斷:Web Deploy 無法在同步完成後從網站移除app_offline.htm檔案。
解決方案:您可以重新執行已啟用 appOffline 規則的同步處理,或從目的地伺服器上的月臺根目錄手動刪除app_offline.htm檔案。 如需失敗原因的詳細資訊,請檢查伺服器事件記錄檔。
您可以在發佈設定檔 (.pubxml) 中設定 appOffline 規則。 將 EnableMSDeployAppOffline
元素新增至 PropertyGroup,如下所示:
<PropertyGroup>
<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
</PropertyGroup>
ERROR_HIGHER_FXVERSION_REQUIRED
診斷:Web Deploy 無法使用 SQL 專用管理員連線來執行同步處理 (DAC) ,因為 SQL DAC 需要 .Net 4.0。
解決方案:確定使用 DAC 建立 SQL 連線的伺服器已安裝 .Net 4.0。 如果您使用 msdeploy.exe 用戶端進行連線,請確定其 .Net 4.0 已列為msdeploy.exe.config檔案中的第一個選項。 如果您要連線到 msdepsvc 伺服器端點, (Web Deployment Agent 服務) ,請確定它已將 .Net 4.0 列為msdepsvc.exe.config檔案中的第一個選項。
ERROR_MAX_NUM_APPLICATIONS_EXCEEDED
診斷:您已建立比目標伺服器上允許更多的 Web 應用程式。
解決方案:向伺服器管理員要求更多應用程式,或刪除一些現有的應用程式。
ERROR_API_NOT_SUPPORTED
診斷:所呼叫的 API 不存在於目標伺服器上,因為伺服器正在使用舊版的 Web Deploy。
解決方案:在伺服器上安裝最新版的 Web Deploy。
DacFxNeededForSQLProvider,
ERROR_SCRIPTDOM_NEEDED_FOR_SQL_PROVIDER,
ERROR_SQLCLRTYPES_NEEDED_FOR_SQL_PROVIDER
以上所列的 3 個錯誤群組會共用下列診斷和解決方式:
診斷:未安裝 SQL DAC 及其相依性。
解決方案:使用 Web Platform Installer 來安裝:
- Microsoft SQL Server 2012 Data-Tier Application Framework
- SQL Server 2012 Transact-SQL ScriptDom
- SQL Server系統 CLR 類型 11.0
ERROR_PACKAGE_TOO_LARGE
診斷:所建立的套件或備份超過 4GB 的大小上限。
解決方案:請改用 archiveDir 提供者來建立套件。 目前沒有此限制與自動備份相關的解決方案。
ERROR_TIMED_OUT
診斷:MySqlDump 花費太多時間回應指定的查詢。
解決方案:您可以變更 WaitAttemptsSettingInfo 和 WaitIntervalSettingInfo 提供者設定的值,以變更 Web Deploy 等候 MySqlDump 從查詢傳回的時間長度。
ERROR_ASSEMBLY_NOT_FOUND
診斷:無法載入必要的相依性。
解決方案:如果您透過 MSI 手動安裝 Web Deploy,請嘗試使用 Web Platform Installer 重新安裝以安裝 Web Deploy,這有助於為您安裝必要的相依性。
ERROR_SMO_NEEDED_FOR_SQL_PROVIDER,
ERROR_USER_NOT_AUTHORIZED_FOR_IISAPP,
ERROR_SCRIPTER_NEEDED_FOR_SQLCE_PROVIDER
上述錯誤群組會共用下列診斷和解決方式:
診斷:找不到 SQL 共用管理物件 (SMO) ,或安裝的版本太舊。
解決方案:使用 Web Platform Installer 安裝最新版的 SMO。
ERROR_CANNOT_CONNECT_TO_DATABASE
診斷:無法連線到資料庫。
解決方案:確認:
- 您的連接字串正確無誤。
- 連接字串中指定的帳號可以存取資料庫。
- 您要連接的資料庫伺服器允許遠端連線。
- 您可以從執行 Web Deploy 的機器存取資料庫伺服器。 如果您要連線到遠端 Web Deploy 伺服器並指定資料庫,則必須確定遠端 Web Deploy 伺服器可以存取您的資料庫。
ERROR_DACPAC_EXTRACTION_TIMEDOUT
診斷:DAC PAC 動作花費太多時間才能完成。
解決方案:藉由指定 CommandTimeout 提供者設定,增加 Web Deploy 等候命令完成的時間量。
ERROR_NOT_SUPPORTED
診斷:Azure 網站不支援在 Web Deploy 發佈作業期間建立新的虛擬應用程式或修改伺服器上的現有應用程式組態。
解決方案:您可以透過Azure 入口網站 (manage.windowsazure.com) 建立新的虛擬應用程式或修改月臺的現有組態設定。 若要這樣做,請登入入口網站,開啟您的網站設定,然後按一下 [設定] 索引標籤。您必須從該處修改月臺,以符合您嘗試部署之應用程式的組態設定。 在大部分情況下,這只是變更 .Net Framework 版本的問題,但在某些情況下,這也可能需要您新增虛擬應用程式。
ERROR_EXCEPTION_WHILE_CREATING_OBJECT
一般而言,這表示驗證來源上的提供者時發生問題。 例如,如果您嘗試從來源檔案共用同步處理內容,而且您沒有檔案共用的存取權,您可能會看到此錯誤碼。 針對這些類型的問題,請確定您可以存取您想要從中發行的所有來源資料。
ERROR_EXECUTING_METHOD
一般錯誤碼,表示發行資料庫時發生問題。 通常,與此程式碼相關聯的堆疊追蹤和訊息應該指出 SQL 管理物件或 SQL Data-Tier Application Framework 擲回的實際錯誤。