当我传入用户凭据时,我有一个MSDeploy部署与TeamCity很好地协作.命令行参数(使用某些值的env.变量)是:
MSBuild.exe Web.csproj
/P:Configuration=%env.Configuration%
/ P:DeployOnBuild = True
/ P:DeployTarget = MSDeployPublish
/ P:MsDeployServiceUrl = https://%env.TargetServer%/MsDeploy.axd
/P:AllowUntrustedCertificate = True
/ P:MSDeployPublishMethod = WMsvc
/ P:CreatePackageOnPublish = True
/P:UserName=%env.AdminUser%
/P:Password=%env.AdminPassword%
工作得很好.但现在我想使用集成的身份验证.我尝试使用集成身份验证或只是基本的来自Can MSBuild部署的 Troy建议吗?但它没有做到这一点.我尝试了传递空白用户名和指定的各种组合
/ P:=进行AuthType NTLM
我得到的最接近的是指定/ p:AuthType = NTLM并传入一个空白用户名.但是仍然会导致此错误:
使用Web管理服务连接到目标计算机("[我的目标服务器名称]"),但无法授权.确保您使用的是正确的用户名和密码,您所连接的站点是否存在,以及凭据是否代表具有访问该站点权限的用户.远程服务器返回错误:(401)未经授权
我在本地和远程服务器上都运行Web管理服务.我将两个实例更改为以我认识的用户正确访问该站点的方式运行 - 如果我手动传入凭据,则该用户可以正常工作.
我还尝试在目标站点上手动为该用户提供IIS管理员权限(但不确定为什么这是必要的,因为用户可以在手动传递凭据时发布到站点).
我注意到的一件事是,在WMsvc日志中,它没有记录使用NTLM auth进行尝试的任何用户名.
不知道这里发生了什么.我真的不想在我的TeamCity配置中存储用户凭据.
谢谢.