C# Telerik开放访问错误:异常:System.ArgumentNullException:值不能为null。参数名称:converterName

C# Telerik开放访问错误:异常:System.ArgumentNullException:值不能为null。参数名称:converterName,c#,asp.net,sql-server,telerik,telerik-open-access,C#,Asp.net,Sql Server,Telerik,Telerik Open Access,我目前遇到一个问题,通过Telerik Open Access(v2015.1.87.3777)连接的存储过程的一些查询返回以下错误: 异常:System.ArgumentNullException:值不能为null。参数名称:converterName 在.rlinq设计器的动态生成的embedded.cs文件中执行存储过程时发生错误。例如: IEnumerable<TestResult> queryResult = this.ExecuteQuery<TestResult&

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

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

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

IEnumerable<TestResult> queryResult = this.ExecuteQuery<TestResult>("[TestSchema].[spS_GetTestResult]", CommandType.StoredProcedure, parameterContextID, parameterReturnValue);
IEnumerable queryResult=this.ExecuteQuery(“[TestSchema].[spS_GetTestResult]”,CommandType.StoredProcess,parameterContextID,parameterReturnValue);
然而,这只发生在某些环境中,而不是在其他环境中,并且配置似乎完全相同。这是昨晚才开始的,没有任何代码更改。在昨天之前,一切都很顺利

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

我试着回到以前版本的Telerik Open Access,但没有效果。我完全不知道是什么导致了这种情况,也没有解释为什么会出现这种情况,特别是为什么它在某些环境下工作,而不是在其他环境下

以下是例外情况的详细信息

System.ArgumentNullException未由用户代码处理 HResult=-2147467261 Message=值不能为null。参数名称:converterName Source=Telerik.OpenAccess.Runtime ParamName=converterName 堆栈跟踪: 在OpenAccessRuntime.Relational.metadata.RelationalMappingResolver.ResolveTypeConverterName(TypeConverterName)中 转换器名称) 在OpenAccessRuntime.Relational.metadata.RelationalMappingResolver.CreateConverter(TypeConverterName)中 转换器名称) 在OpenAccessRuntime.DataReaderTypeConverterImpl.Setup(Int32偏移量,键入targetType) 在OpenAccessRuntime.DataReaderTypeConverterImpl.Convert(类型targetType,Int32 offset) 在Telerik.OpenAccess.Data.Common.OADataReader.GetConvertedValue[T](Int32)中 列(索引) 在Telerik.OpenAccess.Data.Common.PropertyAccessor.Impl`2.Set(对象 inst,OADataReader,Int32列索引) 在Telerik.OpenAccess.Data.Common.nonpersistentableMaterializer 1.d_u0.MoveNext()中 在Telerik.OpenAccess.RT.TypedEnumerator 1.MoveNext()中 位于System.Collections.Generic.List 1..ctor(IEnumerable 1集合) 在Telerik.OpenAccess.OpenAccessContextBase.ExecuteQuery[T](字符串 commandText、CommandType CommandType、DbParameter[]参数) 在中的TestProject.ORM.PresentationData.GetTestResult(可为null的1 contextID、Int32和returnValue)处 c:\Projects…\DataModels\PresentationData1.cs:第1789行 在c:\Projects…\DataModels\PresentationData1.cs中的TestProject.ORM.PresentationData.GetTestResult(可为null的1个contextID)处:第1768行 在c:\Projects…\DataHelpers\Presentation.cs中的TestProject.ORM.DataHelpers.Presentation.GetTestResult(Int32 contextId)处:第229行 在TestProject.DataServices.PresentationService.GetTestResult(Int32)中 c:\Projects…\PresentationService.svc.cs中的contextId):第404行 在SyncInvokeGetStresult(对象、对象[]、对象[])处 位于System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象 实例、对象[]输入、对象[]和输出) 在System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc)中& (rpc) 内部异常:


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

  • KB3194719(SQL)
  • KB3197873(窗口)