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

Visual studio 2015 ws2012r2主机上的Web部署3.6,从VS 2015部署失败,出现401错误,visual-studio-2015,webdeploy,Visual Studio 2015,Webdeploy,这适用于Web Deploy 3.6,在Windows Server 2012 R2框上配置并运行正确配置的远程管理服务,在使用Windows 10的开发人员PC上配置并运行Visual Studio 2015,并从IDE中调用的Web Deploy进行部署。(更新:问题似乎出在http上,Web部署与http不兼容。) 这与关于Web部署失败并出现401个错误的其他问题略有不同,因为错误只发生在实际部署期间,而不是在“验证连接”期间 对这两个类似问题的所有解决方案都进行了尝试。有一个注册表黑客

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

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

对这两个类似问题的所有解决方案都进行了尝试。有一个注册表黑客(UAC问题)和其他一些事情。有要检查的本地文件系统权限

Windows Server 2012 R2上的IIS必须有一些新的技巧,使用Web Deploy 3.6,才能让这项“出色”的技术发挥作用

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


Web Deploy 3.6和以前的版本似乎有数百个主要缺陷,许多缺陷归结为基本上需要
https
等未记录的需求,而
msdeploy
等各种比特具有极其复杂的命令行语法

我尝试从VisualStudio内部进行Web部署,它在Azure上的生产系统上工作,但在我的内部开发系统上失败

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

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

  • 只有通过webdeploy推送https,当您使用http时,它往往会失败

  • 如果您没有有效的受信任证书(例如自签名证书),可以将-allowUntrusted添加到下面的命令中

  • 在VisualStudioIDE的输出面板中打印msdeploy命令语法时,找到它,它将是这样的,然后修改它

  • 请不要以纯文本形式存储凭据。我在CI系统中使用批处理文件,我的机密存储在CI系统中,并使用
    %ENVIRONMENT\u VARIABLE%
    语法注入批处理文件

    -

    从命令行(或您自己的批处理文件)中,类似于上面的内容对我有效,即使它在VisualStudioIDE中仍然失败。如果有一种方法可以让Web部署在VisualStudioIDE中实际运行,那么问题仍然悬而未决


    现在,我已经用试用版Windows Server 2016虚拟机和Windows Server 2012 r2对此进行了测试,我认为web deploy 3.6已经损坏,并且没有哪个部分比visual studio的向导/可视化发布部分更坏。

    有趣的是,服务器上启用了wmsvc日志记录,但在c:\inetpub\logs\wmsvc中的服务器上未生成任何日志文件
      "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