У нас есть ситуация, когда класс CrmServiceClient
не может быть создан, с ошибкой 'Ссылка на объект не установлена на объект' , исходящей из глубины недр конструктора. Я также получил Коллекция была изменена; Операция перечисления может не выполнить ошибку в некоторых ситуациях.
Это происходит не всегда, но мы, похоже, можем воспроизвести его, когда очень быстро запускаем несколько запросов.
Мы создаем объект следующим образом:
var ctx = new CrmServiceClient(ConfigurationManager.ConnectionStrings["Xrm"].ConnectionString);
Строка подключения действительна, и мы установили RequireNewInstance в true
Изначально мы использовали ctx
в блоке using, но нам сообщили, что не следует избавляться от CrmServiceClient, поэтому мы удалили блок using, но это не решило проблему.
Трассировка стека ниже - я вставил только соответствующую часть. Стек, ведущий к этой точке, может быть любым фрагментом кода, который пытается подключиться к CRM для извлечения данных
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
at System.Collections.Generic.List`1.Enumerator.MoveNext()
at Microsoft.Xrm.Tooling.Connector.Utilities.GetOrgnameAndOnlineRegionFromServiceUri(Uri serviceUri, String& onlineRegion, String& organizationName, Boolean& isOnPrem)
at Microsoft.Xrm.Tooling.Connector.CrmConnection.SetOrgnameAndOnlineRegion(Uri serviceUri)
at Microsoft.Xrm.Tooling.Connector.CrmConnection..ctor(String serviceUri, String userName, String password, String domain, String homeRealmUri, String authType, String requireNewInstance, String clientId, String redirectUri, String tokenCacheStorePath, String loginPrompt, String certStoreName, String certThumbprint, String skipDiscovery)
at Microsoft.Xrm.Tooling.Connector.CrmConnection..ctor(IDictionary`2 connection)
at Microsoft.Xrm.Tooling.Connector.CrmConnection.Parse(String connectionString)
at Microsoft.Xrm.Tooling.Connector.CrmServiceClient.ConnectToCrmWebService(String crmConnectionString)
at Microsoft.Xrm.Tooling.Connector.CrmServiceClient..ctor(String crmConnectionString)