iis - msdeploy 失败 : The account 'xxx' does not appear to be valid

标签 iis active-directory teamcity msdeploy

我正在尝试从 TeamCity 获得自动化部署,为我们的新 API 端点之一工作。我已经正确设置了一切,包括 TeamCity 调用 MSDeploy 将包发送到我们的服务器的最后一步(我们在这里谈论我们的集成/测试服务器)。

一切正常,但是,在 IIS 中创建新站点时,我们从另一个网站借用了一个服务用户来运行应用程序池。

当我们创建一个新的域用户并切换应用程序池时,我们的部署开始失败。 MSDeploy 给出的错误是:

Error: (30/10/2014 15:00:56) An error occurred when the request was processed on the remote computer. [15:00:56][Step 1/1] Error: The account 'XXX' does not appear to be valid. The account was obtained from this location: 'system.applicationHost/applicationPools/******.com'. [15:00:56][Step 1/1] Error: Some or all identity references could not be translated. [15:00:56][Step 1/1] at System.Security.Principal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean forceSuccess) [15:00:56][Step 1/1] at System.Security.Principal.NTAccount.Translate(Type targetType) [15:00:56][Step 1/1] at Microsoft.Web.Deployment.Impersonator.GetNTAccount(String userName, String source)



其中 XXX 是我们创建的新域用户。我们将借用的旧域用户称为“YYY”。我们正在使用第三个帐户“ZZZ”来连接 Web 部署。因此,当应用程序池以 YYY 运行时一切正常,但是当我们切换到 XXX 时会出现此错误。

我们已经看了又看,但我们找不到XXX和YYY之间的任何区别。它们都在同一个 AD 组中,并且似乎在服务器上具有相同的权限。使用帐户 XXX 通过 RDP 登录到服务器允许我们打开 IIS GUI 并浏览/管理站点。

我一直找不到许多其他网站在谈论这个问题,但这让我们完全被难住了。

仅供引用,我们已经重新启动了有问题的 Web 服务器,看看是否有帮助。它没有。

最佳答案

此处返回的错误只是一般的身份验证失败错误。在此特定场景中,身份验证失败是由用户主体名称与运行应用程序池的用户的 SAM 帐户名称之间的差异引起的。

有关在验证 Active Directory 用户时使用哪个名称的说明,请参阅以下问题 - https://serverfault.com/questions/371150/any-difference-between-domain-username-and-usernamedomain-local

在我们的特定示例中,应用程序池的事件目录用户名超过 20 个字符。 SAM 帐户名称有 20 个字符的限制,这意味着不包括超过 20 个字符的所有字符。

如链接答案中所述,您在指定域和用户名时使用的格式将决定用于身份验证的名称版本。因此,对于示例用户名“username_longer_than_20_characters”,以下格式将起作用:

domain\username_longer_than - 使用 SAM 帐户名进行身份验证
或者
username_longer_than_20_characters@domain - 使用用户主体名称进行身份验证

链接帖子中的答案还解释了如何检查 Active Directory 用户的 SAM 帐户名称。

关于iis - msdeploy 失败 : The account 'xxx' does not appear to be valid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26657858/

相关文章:

node.js - 在IIS中发布express js应用程序的步骤

php - IIS:隐藏段和自定义错误冲突

asp.net - 使用 team city 部署 asp.net 网站

teamcity - 在 64 位 TeamCity 代理上运行的 OpenCover

export - 如何将 TestExecute/TestComplete 结果导出到 teamcity?

.net - NetTcpActivator 服务(Net.Tcp Listener Adapter)偶尔停止响应

c# - 使用 Azure Active Directory 对用户进行身份验证后执行代码

testing - 如何使用 ADAM 运行单元测试?

ssl - 在多个 AD 域 Controller 上启用 ldaps

css - Internet Explorer 11 在本地主机和远程服务器之间以不同方式呈现 .aspx 页面