相关疑难解决方法(0)

MSBuild可以使用集成身份验证进行部署还是仅基本部署

我正在从MSBuild命令行将Web应用程序包部署到IIS6上的MSDepSvc,使用基本身份验证可以正常使用以下命令:

MSBuild.exe Web.csproj
  /p:Configuration=Debug
  /p:DeployOnBuild=True
  /p:DeployTarget=MSDeployPublish
  /p:MsDeployServiceUrl=http://[server name]/MsDeployAgentService
  /p:DeployIisAppPath=DeploymentTestProject
  /p:MSDeployPublishMethod=RemoteAgent
  /p:CreatePackageOnPublish=True
  /p:username=***
  /p:password=***
Run Code Online (Sandbox Code Playgroud)

但是,我真正想做的是删除用户名和密码参数,然后以当前用户的身份回退到集成的auth.此命令将进入构建服务器,我不希望具有对目标环境(MsDepSvc所需)的管理员权限的帐户的纯文本凭据可见.我无法找到有关如何执行此操作的任何文档,并且当我尝试发布时,丢弃凭据返回401未经授权.

令我特别沮丧的是,我可以愉快地在带有集成身份验证的软件包中运行deploy命令(只是不包含凭据),我似乎无法从MSBuild命令行运行它.我正在尝试封装包并将进程部署到单个命令中而不编辑构建文件,这是目前唯一的方法.

有什么想法吗?

编辑 在与Sayed进行一些讨论并深入了解命令行输出后,执行上面的MSBuild命令(没有用户名和密码参数)后,将调用以下MSDeploy命令:

msdeploy.exe
  -source:package='[project path]\Web\obj\Debug\Package\Web.zip' 
  -dest:auto,ComputerName='http://[server]/MsDeployAgentService',UserName='***',IncludeAcls='False',AuthType='NTLM'
  -verb:sync
  -disableLink:AppPoolExtension
  -disableLink:ContentExtension
  -disableLink:CertificateExtension
  -retryAttempts=2
Run Code Online (Sandbox Code Playgroud)

您可以看到正在设置UserName属性,该值是当前登录用户的用户名.如果我把它拿出并直接运行上面的命令,那么部署就可以了.

那么在此基础上,为什么原始MSBuild命令在调用MSDeploy时插入UserName属性?这似乎是现在唯一的障碍.

msbuild msdeploy

36
推荐指数
1
解决办法
2万
查看次数

尝试同步站点时,MSDeploy触发401 Access denied错误

我尝试将IIS站点从Win2003服务器推送/同步到另一个.

这是我的命令:

msdeploy -verb:sync -source:metakey = lm/w3svc/68512112 -dest:metakey = lm/w3svc/68512112,computername = backup-09,username = Administrator,password = PASSWORD -whatif> msdeploysync.log

我也试过以下

msdeploy -verb:sync -source:metakey = lm/w3svc/68512112 -dest:metakey = lm/w3svc/68512112,computername = backup-09,username = BACKUP-09\Administrator,password = PASSWORD -whatif> msdeploysync.log

我也试过了

msdeploy -verb:sync -source:metakey = lm/w3svc/68512112 -dest:metakey = lm/w3svc/68512112,computername = backup-09,username = Administrator @ BACKUP-09,password = PASSWORD -whatif> msdeploysync.log

这是错误:

致命: 请求远程代理URL" http:// backup-09/MSDEPLOYAGENTSERVICE "失败.

致命: 远程服务器返回错误:(401)未经授权.致命数:1

  • 我确实以管理员身份运行了msdeploy/cmd.
  • 我确实尝试访问 http:// backup-09/MSDEPLOYAGENTSERVICE,它要求我的权限,我输入了上面的凭据,它工作(显示空站点).
  • 这是MSDeploy的Beta 2

谁能帮我?

我现在甚至为所有服务器设置了域控制器...仍然是相同的问题,无论我是以域控制器身份登录,还是提供本地帐户,所有变体都会触发401

iis ntlm msdeploy msdeployserviceagent

9
推荐指数
2
解决办法
6936
查看次数

标签 统计

msdeploy ×2

iis ×1

msbuild ×1

msdeployserviceagent ×1

ntlm ×1