2014-12-21 40 views
0

我嘗試使用下面的命令做一個MSDeploy:MSDeploy到IIS6

"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\\msdeploy.exe" -source:package='package.zip' -dest:auto,computerName='servername',includeAcls='False' -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"package.SetParameters.xml" 

它將被部署到是Win2003的服務器上運行IIS 6,當我運行從WinXP的此命令的服務器哈德森CI奴隸,它工作得很好。但是,在新的Win7從站上運行此操作會給我以下錯誤:

Error: (12/21/2014 12:59:17 AM) An error occurred when the request was processed on the remote computer. 
Error: The metabase key '/LM/W3SVC' could not be found. 
Error: The type initializer for 'Microsoft.Web.Deployment.AxNative' threw an exception. ---> System.IO.IOException: The specified module could not be found. (Exception from HRESULT: 0x8007007E) 
    --- End of inner exception stack trace --- 
    at Microsoft.Web.Deployment.AxNative.MetabaseGetBaseObject(String serverName, String userName, String password, IAppHostWritableAdminManager manager, Object& objectHandle) 
    at Microsoft.Web.Deployment.MetaKeyCommitItem..ctor(DeploymentBaseContext baseContext, Boolean useInternalAbo, Boolean isReadOnly) 
    at Microsoft.Web.Deployment.MetaKeyCommitItem.GetInstance(DeploymentBaseContext baseContext, Boolean useInternalAbo, Boolean isReadOnly) 
    at Microsoft.Web.Deployment.MetaKeyProvider.get_CommitItem() 
    at Microsoft.Web.Deployment.MetaKeyProvider.DoesNodeExist(Exception& e) 
Error: The library 'C:\Program Files\IIS\Microsoft Web Deploy\x86\axnative.dll' could not be loaded. 
Error: The specified module could not be found. (Exception from HRESULT: 0x8007007E) 
Error count: 1. 

任何想法?請讓我知道是否需要更多信息。

回答

0

問題出現在運行IIS6的目標win2003服務器上安裝MS Deploy(HKLM \ SOFTWARE \ Microsoft \ IIS Extensions \ Web Deploy應該爲web部署2.0設置一個「2」文件夾,而不是它有一個「1 「文件夾)。

我剛剛修復(重新安裝)MS部署2.0,它解決了這個問題。

0

錯誤:「無法找到元數據庫密鑰'/ LM/W3SVC'。」聽起來像是在Windows 7(iis7)目標上使用錯誤的提供程序,因爲IIS7不再使用配置數據庫。 IIS7及以上版本使用配置模型。

這是how to migrate a site from IIS6 to IIS7上的鏈接,它顯示了使用IIS6服務器中的包並將其導入到IIS7服務器的示例。

我在你的例子中看到的唯一區別是他們在目標上指定了一個metakey提供者,並且你正在使用「auto」。 Auto可能適用於IIS6到IIS6,但也許您需要指定metaKey提供程序(用於IIS6站點或IIS6到IIS7遷移)作爲目標提供程序。

創建包例子

msdeploy -verb:sync -source:metakey=lm/w3svc/<<YourSiteIDHere>> -dest:package=c:\Site1.zip > WebDeployPackage.log 

部署到IIS7目的地例如

msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/<<YourSiteIDHere>> > WebDeploySync.log 

如果你正在做IIS7你想使用的AppHostConfig提供商,而不是IIS7遷移。但是metakKey提供程序是從Microsoft指定的IIS6到IIS6或IIS6到IIS7的指定。

+0

我沒有部署到IIS7。正在從IIS7服務器對IIS 6服務器進行部署。謝謝你的回答,雖然 - 我已經設法解決這個問題(我會發布什麼是錯誤的答案和關閉這個問題)。 –