Telerik Open Access错误:异常:System.ArgumentNullException:值不能为null。参数名称:converterName

时间:2016-11-22 17:21:23

标签: c# asp.net sql-server telerik telerik-open-access

我目前遇到的问题是,通过Telerik Open Access(v2015.1.87.3777)连接到存储过程的少量查询会返回以下错误:

  

异常:System.ArgumentNullException:值不能为null。参数名称:converterName。

在.rlinq设计器的动态生成的嵌入式.cs文件中执行存储过程时发生错误。例如,

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

但是,这只发生在某些环境而不是其他环境中,看似完全相同的配置。这只是在昨晚开始发生,没有代码更改。在昨天之前,一切都在全面运作。

我可以在本地重现这个问题,如果我在本地运行解决方案并指向我知道工作的数据库服务器一切正常。但是,如果我更改连接字符串并指向我知道不起作用的其他服务器,我会收到错误。因此底层代码完全相同(假设我在本地运行它),唯一改变的是连接字符串。并且它调用相同的存储过程 - 实际上整个数据库是另一个有效的克隆。

我尝试回滚到先前版本的Telerik Open Access,但没有任何效果。我完全不知道是什么导致了这一点,并且没有解释为什么会出现这种情况,特别是为什么它适用于某些环境,而不是其他环境。

以下是例外情况。

  

System.ArgumentNullException未被用户代码处理           的HResult = -2147467261           Message = Value不能为null。参数名称:converterName           来源= Telerik.OpenAccess.Runtime           PARAMNAME = converterName           堆栈跟踪:                在OpenAccessRuntime.Relational.metadata.RelationalMappingResolver.ResolveTypeConverterName(TypeConverterName)   converterName)                在OpenAccessRuntime.Relational.metadata.RelationalMappingResolver.CreateConverter(TypeConverterName)   converterName)                在OpenAccessRuntime.DataReaderTypeConverterImpl.Setup(Int32 offset,Type targetType)                在OpenAccessRuntime.DataReaderTypeConverterImpl.Convert(类型targetType,Int32 offset)                在Telerik.OpenAccess.Data.Common.OADataReader.GetConvertedValue [T](Int32)   columnIndex)                在Telerik.OpenAccess.Data.Common.PropertyAccessor.Impl`2.Set(对象   inst,OADataReader reader,Int32 columnIndex)                在Telerik.OpenAccess.Data.Common.NonPersistentCapableMaterializer 1.d__0.MoveNext()                在Telerik.OpenAccess.RT.TypedEnumerator 1.MoveNext()                在System.Collections.Generic.List 1..ctor(IEnumerable 1 collection)                在Telerik.OpenAccess.OpenAccessContextBase.ExecuteQuery [T](字符串   commandText,CommandType commandType,DbParameter []参数)                在TestProject.ORM.PresentationData.GetTestResult(Nullable 1 contextID,Int32&amp; returnValue)in   c:\ Projects ... \ DataModels \ PresentationData1.cs:第1789行                在C:\ Projects ... \ DataModels \ PresentationData1.cs中的TestProject.ORM.PresentationData.GetTestResult(Nullable 1 contextID):第1768行                在C:\ Projects ... \ DataHelpers \ Presentation.cs中的TestProject.ORM.DataHelpers.Presentation.GetTestResult(Int32 contextId):第229行                在TestProject.DataServices.PresentationService.GetTestResult(Int32   contextId)在c:\ Projects ... \ PresentationService.svc.cs:404行                在SyncInvokeGetTestResult(Object,Object [],Object [])                在System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object   实例,对象[]输入,对象[]&amp;输出)                在System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&amp;   RPC)           的InnerException:

1 个答案:

答案 0 :(得分:0)

这是由于在所述服务器上推出的安全更新。回滚这些补丁解决了这个问题:两个安全更新是:

  • KB3194719(SQL)
  • KB3197873(Windows)