Microsoft-Dynamics-Crm

來自不同區域設置的 Dynamics CRM 2011 導入組織在 SQLException 上失敗

  • December 21, 2019

在嘗試導入現有組織時,我正在努力使用 Dynamics CRM 2011 - 來自客戶的視窗域,而不是我們的。

設置

兩台伺服器。

  • 一台 Windows Server 2008 r2 x64 Standard(區域設置 fr-FR),用於前端、WebApp 和所有
  • 一台 Windows server 2008 r2 x64 Enterprise(區域設置為 fr-FR)和 SQL Server 2008 R2 Enterprise 版(區域設置為 fr-FR)用於數據和報告層

導入的組織來自在同一 Windows 2008 Server 上安裝了數據層和應用層(語言環境 en-US)

Web 層為 v5.0.9688.1045,數據層為 v.5.0.9688.1155(更新匯總 2)

錯誤

該數據庫被認為是一個動態 CRM 數據庫,使用者映射繼續進行,並且導入過程完成了大部分工作。主要是因為它似乎在最後一刻失敗了。

19:42:49|   Info| Performing GrantServiceAccountAccess on SqlServerName dbserverwhere SqlServerMachineName=dbserver, reportServerUrl=http://dbserver/ReportServer
19:42:51|  Error| L’importation de l’organisation (Nom=XXXXX, ID=3d8ee9fb-6c80-e011-a99b-005056bc000a) a échoué avec l’exception :
System.Data.SqlClient.SqlException (0x80131904): L'ouverture de session a déjà un compte sous un nom d'utilisateur différent.

感謝 unlocalize.com : SQLException :登錄已經有一個不同使用者名下的帳戶。

à System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
à System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
à System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
à System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
à System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
à System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
à System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
à System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
à Microsoft.Crm.CrmDbConnection.InternalExecuteWithRetry[TResult](Func`1 ExecuteMethod, IDbCommand command)
à Microsoft.Crm.CrmDbConnection.InternalExecuteNonQuery(IDbCommand command, Boolean capturePerfTrace)
à Microsoft.Crm.CrmDbConnection.ExecuteNonQuery(IDbCommand command, Boolean impersonate, Boolean capturePerfTrace)
à Microsoft.Crm.Setup.Database.SharedDatabaseUtility.CreateUser(CrmDbConnection connection, String user, Boolean enableTrace, Boolean deleteExisting)
à Microsoft.Crm.Setup.Database.DatabaseUtility.CreateUser(InstallDatabase database, String user, Boolean replaceExisting)
à Microsoft.Crm.Setup.Database.Helpers.GrantCrmReaderAccess(String user, Guid organizationId, Boolean replaceExistingUser)
à Microsoft.Crm.Setup.Database.Helpers.GrantCrmReaderAccess(String user, Guid organizationId)
à Microsoft.Crm.Setup.Database.Helpers.GrantCrmReaderAccessToNetworkService(Guid organizationId)
à Microsoft.Crm.Setup.Server.Utility.SqlUtility.GrantSrsServiceAccountAccess(String sqlMachineName, Uri rsUri, Guid organizationId)
à Microsoft.Crm.Tools.Admin.GrantCrmDatabaseAccessAction.GrantServiceAccountAccess(Guid organizationId, String sqlServerMachineName, Uri reportingUrl)
à Microsoft.Crm.Tools.Admin.ImportOrganizationInstaller.Import(Guid organizationId, String organizationUniqueName, String organizationFriendlyName, String sqlServerName, String databaseName, Uri reportServerUrl, ICollection`1 users, MultipleTenancy multipleTenancy, Int32 partitionNumber, Int32 fullTextSearchLocaleId)

我已經嘗試過的事情 - 但沒有奏效

  • Google搜尋解決方案。
  • 停用和刪除啟動器數據庫。
  • 將外域 AD 使用者映射到全新的本地域 AD 使用者。

提前感謝您的幫助

編輯 1:添加了語言環境資訊,並更正了一些不准確的設置資訊

我剛剛打電話給 Microsoft 支持,在它的幫助下我可以解決這個問題。

錯誤 :

這裡的問題是本地化問題。我的 fr-FR 動態 CRM 安裝嘗試在導入的數據庫上添加一個名為“AUTORITE NT\SERVICE RESEAU”的 SQL 使用者,而“NT AUTHORITY\NETWORK SERVICE”使用者已經存在。兩者實際上是相同的登錄帳戶,這就是我遇到此問題的原因。

解決方案:

這裡的違規者是“NT AUTHORITY\NETWORK SERVICE”或其本地化名稱

在要導入的數據庫上

  • 刪除有問題的架構
  • 刪除違規使用者
  • 再次導入。它應該工作。

引用自:https://serverfault.com/questions/277540