【发布时间】:2016-12-20 19:56:39
【问题描述】:
我目前遇到一个问题,即通过 Telerik Open Access (v2015.1.87.3777) 连接的存储过程的少数查询返回以下错误:
异常:System.ArgumentNullException:值不能为空。参数名称:转换器名称。
在 .rlinq 设计器动态生成的嵌入式 .cs 文件中执行存储过程时发生错误。例如,
IEnumerable<TestResult> queryResult = this.ExecuteQuery<TestResult>("[TestSchema].[spS_GetTestResult]", CommandType.StoredProcedure, parameterContextID, parameterReturnValue);
但是,这仅在某些环境中发生,而在其他环境中则不会发生,并且配置似乎完全相同。这只是昨晚才开始发生,没有代码更改。昨天之前一切正常。
我可以在本地重现问题,如果我在本地运行解决方案并指向我知道可以正常工作的数据库服务器,一切都很好。但是,如果我更改连接字符串并指向另一个我知道不起作用的服务器,我会收到错误消息。所以底层代码完全相同(假设我在本地运行它),唯一改变的是连接字符串。它调用相同的存储过程——实际上整个数据库是另一个有效的克隆。
我尝试回滚到以前版本的 Telerik Open Access,但没有任何效果。我完全不知道是什么导致了这种情况,也没有解释为什么会出现这种情况,尤其是为什么它在某些环境中起作用,而不是在其他环境中起作用。
这里是异常详情。
System.ArgumentNullException 未被用户代码处理 H结果=-2147467261 Message=Value 不能为空。参数名称:转换器名称 来源=Telerik.OpenAccess.Runtime 参数名称=转换器名称 堆栈跟踪: 在 OpenAccessRuntime.Relational.metadata.RelationalMappingResolver.ResolveTypeConverterName(TypeConverterName 转换器名称) 在 OpenAccessRuntime.Relational.metadata.RelationalMappingResolver.CreateConverter(TypeConverterName 转换器名称) 在 OpenAccessRuntime.DataReaderTypeConverterImpl.Setup(Int32 偏移量,类型 targetType) 在 OpenAccessRuntime.DataReaderTypeConverterImpl.Convert(类型 targetType,Int32 偏移量) 在 Telerik.OpenAccess.Data.Common.OADataReader.GetConvertedValue[T](Int32 列索引) 在 Telerik.OpenAccess.Data.Common.PropertyAccessor.Impl`2.Set(对象 inst, OADataReader 阅读器, 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 集合) 在 Telerik.OpenAccess.OpenAccessContextBase.ExecuteQuery[T](字符串 commandText、CommandType commandType、DbParameter[] 参数) 在 TestProject.ORM.PresentationData.GetTestResult(Nullable 1 contextID, Int32& returnValue) 中 c:\Projects...\DataModels\PresentationData1.cs:1789 行 在 c:\Projects...\DataModels\PresentationData1.cs:line 1768 中的 TestProject.ORM.PresentationData.GetTestResult(Nullable 1 contextID) 在 c:\Projects...\DataHelpers\Presentation.cs:line 229 中的 TestProject.ORM.DataHelpers.Presentation.GetTestResult(Int32 contextId) 在 TestProject.DataServices.PresentationService.GetTestResult(Int32 contextId) 在 c:\Projects...\PresentationService.svc.cs:line 404 在 SyncInvokeGetTestResult(对象,对象 [],对象 []) 在 System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象 实例,Object[] 输入,Object[]& 输出) 在 System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& RPC) 内部异常:
【问题讨论】:
标签: c# asp.net sql-server telerik telerik-open-access