2016-11-22 1 views
1

я в настоящее время испытывает проблемы, когда несколько запросов хранимых процедур подключил через Telerik открытого доступа (v2015.1.87.3777) возвращают следующее сообщение об ошибке:Telerik Open Ошибка доступа: Исключение: System.ArgumentNullException: Значение не может быть нулевым. Имя параметра: converterName

Exception: System.ArgumentNullException: Value cannot be null. Parameter name: converterName.

Ошибка возникает при точка, когда хранимая процедура выполняется в динамически сгенерированном встроенном CS-файле конструктора .rlinq. НАПРИМЕР,

IEnumerable<TestResult> queryResult = this.ExecuteQuery<TestResult>("[TestSchema].[spS_GetTestResult]", CommandType.StoredProcedure, parameterContextID, parameterReturnValue); 

Однако это происходит только на определенных условиях, а не другие, казалось бы, с точно такой же конфигурации. Это только начало происходить прошлой ночью без изменений кода. До вчерашнего дня все работало нормально.

Я могу воспроизвести проблему локально, и если я запустил решение локально и укажу на сервер базы данных, который, как я знаю, работает, все в порядке. Но если я изменю строку подключения и укажу на другой сервер, который, как я знаю, не работает, я получаю ошибку. Таким образом, базовый код точно такой же (учитывая, что я его запускаю локально), и единственное, что меняется, это строка соединения. И он вызывает идентичные хранимые процедуры - фактически вся база данных является клоном другого, который работает.

Я попытался вернуться к предыдущим версиям Telerik Open Access, который не имел никакого эффекта. Я совершенно не знаю, что могло бы вызвать это, и никаких объяснений, почему это всплыло, и, в частности, почему он работает в некоторых средах, а не в других.

Вот подробности об исключении.

System.ArgumentNullException was unhandled by user code HResult=-2147467261 Message=Value cannot be null. Parameter name: converterName Source=Telerik.OpenAccess.Runtime ParamName=converterName StackTrace: at OpenAccessRuntime.Relational.metadata.RelationalMappingResolver.ResolveTypeConverterName(TypeConverterName converterName) at OpenAccessRuntime.Relational.metadata.RelationalMappingResolver.CreateConverter(TypeConverterName converterName) at OpenAccessRuntime.DataReaderTypeConverterImpl.Setup(Int32 offset, Type targetType) at OpenAccessRuntime.DataReaderTypeConverterImpl.Convert(Type targetType, Int32 offset) at Telerik.OpenAccess.Data.Common.OADataReader.GetConvertedValue[T](Int32 columnIndex) at Telerik.OpenAccess.Data.Common.PropertyAccessor.Impl`2.Set(Object inst, OADataReader reader, Int32 columnIndex) at Telerik.OpenAccess.Data.Common.NonPersistentCapableMaterializer 1.d__0.MoveNext() at Telerik.OpenAccess.RT.TypedEnumerator 1.MoveNext() at System.Collections.Generic.List 1..ctor(IEnumerable 1 collection) at Telerik.OpenAccess.OpenAccessContextBase.ExecuteQuery[T](String commandText, CommandType commandType, DbParameter[] parameters) at TestProject.ORM.PresentationData.GetTestResult(Nullable 1 contextID, Int32& returnValue) in c:\Projects...\DataModels\PresentationData1.cs:line 1789 at TestProject.ORM.PresentationData.GetTestResult(Nullable 1 contextID) in c:\Projects...\DataModels\PresentationData1.cs:line 1768 at TestProject.ORM.DataHelpers.Presentation.GetTestResult(Int32 contextId) in c:\Projects...\DataHelpers\Presentation.cs:line 229 at TestProject.DataServices.PresentationService.GetTestResult(Int32 contextId) in c:\Projects...\PresentationService.svc.cs:line 404 at SyncInvokeGetTestResult(Object , Object[] , Object[]) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) InnerException:

ответ

0

Это произошло из-за обновлений безопасности, которые были развернуты на указанных серверах. Подвижной эти патчи Решена проблема: два обновления безопасности были:

  • KB3194719 (SQL)
  • KB3197873 (Windows)