ws2012r2主机上的Web部署3.6,从VS 2015部署失败,出现401错误

时间:2016-10-11 19:37:20

标签: visual-studio-2015 webdeploy

这适用于Web部署3.6,在Windows Server 2012 R2上配置并运行正确配置的远程管理服务,在使用Windows 10的开发人员PC上配置Visual Studio 2015,并从IDE中调用Web Deploy进行部署。 (更新:看来http是问题,Web部署只能用于http。)

这与有关Web部署失败的其他问题略有不同,因为错误只发生在实际部署期间而不是“验证连接”期间。

尝试了posted两个类似问题的所有解决方案other。有一个注册表黑客(UAC问题)和其他一些东西。有要检查的本地文件系统权限。

在Windows Server 2012 R2上,使用Web Deploy 3.6,IIS必须有一些新的技巧才能让这种“精彩”技术同意工作。

2016年,Web部署与以往一样令人愤怒。

web deploy y u no work?

1 个答案:

答案 0 :(得分:1)

Web Deploy 3.6和之前的版本似乎有数百个主要的皱纹,很多都归结为基本上需要https这样的未记录的需求,以及像msdeploy这样的各种位具有可怕的复杂命令行语法

我在Visual Studio中尝试过Web Deploy,它在Azure上的生产系统上工作,但在我的内部开发系统中失败了。

它似乎可以在Visual Studio IDE内部使用有效签名证书的系统上使用,如果要部署到开发人员IIS框,请确保系统正在侦听https。如果使用自签名证书,则可能需要使用此变通方法,以便从CI系统或开发人员命令行进行部署:

  1. 将https绑定添加到开发或部署服务器的站点绑定中。

  2. 只使用webdeploy推送https,使用http时往往会失败。

  3. 如果您没有有效的可信证书(例如自签名证书),则可以在下面的命令中添加-allowUntrusted。

  4. 找到在Visual Studio IDE的输出面板中打印的msdeploy命令语法,它将是这样的,然后修改它。

  5. 请勿以纯文本格式存储凭据。我在CI系统中使用批处理文件,我的秘密存储在CI系统中,并使用%ENVIRONMENT_VARIABLE%语法注入批处理文件。

    -

      "C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" 
      -source:manifest='C:\Users\...\SourceManifest.xml' 
      -dest:manifest='C:\Users\...\DestinationManifest.xml',
      ComputerName='https://192.168.215.141:8172/msdeploy.axd
      ?site=something',UserName='something',
      Password='something',IncludeAcls='False',AuthType='Basic' 
      -verb:sync -enablerule:AppOffline -enableRule:DoNotDeleteRule 
      -retryAttempts:20 -allowUntrusted
    

    从命令行(或您自己的批处理文件),类似上面的内容对我有用,即使它在Visual Studio IDE中仍然失败。如果有办法让Web Deploy在Visual Studio IDE中实际运行,问题仍然存在。

    我现在已经使用Windows Server 2016 vm试用版和Windows Server 2012 r2进行了测试,在我看来,Web部署3.6刚刚破解,并且它的任何部分都没有比向导/可视化发布部分更糟糕视觉工作室。