В SQLException происходит сбой организации импорта Dynamic CRM 2011 из другой локали
ОБНОВЛЕНИЕ: Проблема решена, см. Ответ ниже.
Я борюсь с Dynamic CRM 2011, когда пытаюсь импортировать существующую организацию - из домена клиента, а не из нашей.
Настройка
Два сервера.
- Один Windows Server 2008 R2 x64 Standard (локаль FR-FR) для интерфейса, WebApp и все
- Один Windows Server 2008 r2 x64 Enterprise (локаль fr-FR) с SQL Server 2008 R2 Enterprise edition (локаль fr-FR) для уровня данных и отчетов
Импортированная организация получена в результате установки с уровнями данных и уровнями приложений на одном и том же Windows 2008 Server (локаль en-US)
Веб-уровень v5.0.9688.1045, уровень данных v.5.0.9688.1155 (накопительный пакет обновления 2)
Ошибка
База данных распознается как база данных Dynamic 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)
То, что я уже пытался сделать - но не сработало
- Погуглил для решения.
- Деактивация и удаление стартовой базы данных.
- Отображение пользователей AD внешнего домена на совершенно нового пользователя AD локального домена.
Заранее спасибо за помощь
РЕДАКТИРОВАТЬ 1: Добавлена информация о локали и исправлены некоторые неточные настройки
1 ответ
Я только что позвонил в службу поддержки Microsoft, и с ее помощью я смог решить эту проблему.
Баг:
Проблема здесь была проблема локализации. Моя fr-FR Dynamic CRM Install попыталась добавить пользователя SQL с именем "AUTORITE NT\SERVICE RESEAU" в импортированную базу данных, пока пользователь "NT AUTHORITY\NETWORK SERVICE" уже существовал. На самом деле оба являются одним и тем же логином, поэтому у меня возникла эта проблема.
Решение:
нарушитель - "NT AUTHORITY\NETWORK SERVICE" или его локализованное имя
В базе данных, которую вы хотите импортировать
- Удалить оскорбительную схему
- Удалить обидчика
- Импортируйте снова. Он должен работать.