MSDeploy从IIS7到IIS6

MSDeploy从IIS7到IIS6,iis,iis-7.5,iis-6,hudson,msdeploy,Iis,Iis 7.5,Iis 6,Hudson,Msdeploy,我正在尝试使用以下命令执行MSDeploy: "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 -d

我正在尝试使用以下命令执行MSDeploy:

"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" 
它将部署到的服务器是运行IIS 6的Win2003服务器。当我从WinXP Hudson 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.

有什么想法吗?如果需要更多信息,请告诉我。

错误:找不到元数据库键“/LM/W3SVC”。听起来Windows 7 iis7目标上使用了错误的提供程序,因为iis7不再使用metabase。IIS7及以上版本使用配置模型

下面是一个链接,其中显示了使用IIS6服务器中的包并将其导入IIS7服务器的示例

我在您的示例中看到的唯一区别是,它们在目标上指定了元密钥提供程序,而您使用的是自动。Auto可能适用于IIS6到IIS6,但可能需要指定用于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到IIS7的迁移,您可能希望改用提供程序。但是,提供程序是Microsoft为IIS6到IIS6或IIS6到IIS7指定的。问题在于,在运行IIS6 HKLM\SOFTWARE\Microsoft\IIS Extensions\Web Deploy的目标win2003服务器上安装MS Deploy时,Web Deploy 2.0应该有一个2文件夹,而不是1文件夹


我刚刚修复了重新安装的MS Deploy 2.0,它解决了问题。

我没有将此部署到IIS7。正在从IIS7服务器向IIS 6服务器进行部署。谢谢你的回答-我已经解决了这个问题,我会把问题的答案贴出来,然后结束这个问题。