2014-10-30 58 views
2

我試圖從TeamCity中爲我們的新API端點之一進行自動化部署。我已經正確設置了一切,包括TeamCity調用MSDeploy將包發送到我們的服務器的最後一步(我們正在討論我們的集成/測試服務器)。Msdeploy失敗:帳戶'xxx'似乎不是有效的

一切工作正常,但在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」與網絡部署進行連接。所以,一切都很好,應用程序池運行YYY,但當我們切換到XXX這個錯誤發生。

我們已經看了看,但是我們在XXX和YYY之間找不到任何區別。他們都在同一個AD組中,並且在服務器上似乎都具有相同的權限。使用帳戶XXX通過RDP登錄到服務器允許我們打開IIS GUI並瀏覽/管理這些站點。

我一直無法找到許多其他網站在談論這個問題,但它讓我們完全難住。我們已經重新啓動了有問題的網絡服務器,看看是否有幫助。它沒有。

+0

運氣好嗎?我有同樣的問題... – 2014-11-13 16:25:18

+0

恐怕不是;我們仍在使用我們從另一個應用程序池中偷取的帳戶。 – Richiban 2014-11-13 17:05:42

回答

2

這裏返回的錯誤只是一般認證失敗錯誤。在此特定情況下,身份驗證失敗是由用戶主體名稱與應用程序池運行用戶的SAM帳戶名稱之間的差異導致的。

具體解釋見以下問題,其中驗證的Active Directory用戶名時使用 - https://serverfault.com/questions/371150/any-difference-between-domain-username-and-usernamedomain-local

在我們的例子中,應用程序池的Active Directory用戶名是超過20個字符。 SAM帳戶名稱有20個字符的限制,這意味着所有超過20的字符都不包含在內。

如鏈接答案中所述,指定域和用戶名時使用的格式將決定使用哪個版本的名稱進行身份驗證。因此,以「username_longer_than_20_characters」的一個例子用戶名以下格式將工作:

域\ username_longer_than - 進行認證使用SAM帳戶名 或 username_longer_than_20_characters @域名 - 進行認證使用用戶主體名稱

答案中的鏈接文章還解釋瞭如何檢查Active Directory用戶的SAM帳戶名稱。

相關問題