2016-12-27 59 views
0

我将我的代码部署为Azure函数app。一切工作正常在我的本地机器。但在Azure Function app上,我在查询raven db时遇到以下异常。Raven db System.InvalidCastException:at at Raven.Client.Document.InMemoryDocumentSessionOperations.TrackEntity [T]

发生了一个或多个错误。System.InvalidOperationException:查询结果类型为'Cat1RootRef',但您期望得到类型为'Cat1RootRef'的结果。如果要返回投影,则应在调用.ToList()之前使用.ProjectFromIndexFieldsInto()(用于查询)或.SelectFields()(用于DocumentQuery)。 ---> System.InvalidCastException:[A] Cqm.Models.Qrda.Cat1RootRef不能转换为[B] Cqm.Models.Qrda.Cat1RootRef。类型A源于'Cqm.Models,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 1dad2e84fc016e57'在上下文'LoadNeither'中的一个字节数组中。类型B源于'Cqm.Models,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 1dad2e84fc016e57'在上下文'LoadNeither'中的字节数组中。 at Raven.Client.Document.InMemoryDocumentSessionOperations.TrackEntity [T](String key,RavenJObject document,RavenJObject metadata,Boolean noTracking) ---内部异常堆栈跟踪结束--- at Raven.Client.Document.InMemoryDocumentSessionOperations。 TrackEntity [T](String key,RavenJObject document,RavenJObject metadata,Boolean noTracking) at Raven.Client.Document.SessionOperations.QueryOperation.Deserialize [T](RavenJObject result) at Raven.Client.Document.SessionOperations.QueryOperation.b__26_0 [T](RavenJObject X) 在System.Linq.Enumerable.WhereSelectListIterator 2.MoveNext() at System.Collections.Generic.List 1..ctor(IEnumerable的1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable 1源) 在Raven.Client.Document.SessionOperations.QueryOperation.CompleteT 在掠夺。 Client.Document.DocumentQuery 1.GetEnumerator() at Raven.Client.Linq.RavenQueryInspector 1.GetEnumerator() 在System.Collections.Generic.List 1..ctor(IEnumerable 1个集合) 在System.Linq.Enumerable.ToList [TSource](IEnumerable的1 source) at Cqm.Services.CqmEngineService.GetPatientStream1(IDocumentSession session, DateTime from, DateTime to, List 1提供商的Int32最大记录) 在Cqm.Services .CqmEngineService。 <> c_DisplayClass15_0.b__0() at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.Execute() 2016-12-27T20:46:27.144 at System.Threading.Tasks。 Task.ThrowIfExceptional(布尔includeTaskCanceledExceptions) 在System.Threading.Tasks.Task.Wait(的Int32 millisecondsTimeout,的CancellationToken的CancellationToken) 在Cqm.Services.CqmEngineService.ComputeMeasuresStreamedUpdated(storeParams storeParams,ComputeParams computeParams) 在提交#0.StartEngine(CloudBlockBlob myBlob,StoreParams ravenStoreParams,TenantConfig tblTenantConfig,TenantReportResults tblTenantReportResults,TraceWriter log)in:line 94 2016-12-27T20:46:27.144

+0

请格式化您的错误消息。现在你的问题是不可能读的。 – Dbz

+0

另外,你能分享一些关于你如何部署和引用你的程序集的信息吗? –

+0

我在我的Function应用程序目录中创建了Bin文件夹并添加了我的代码dll。对于乌鸦,我尝试使用Nugget包并将dll放入bin文件夹。代码正在编译并执行正常。它在从raven db加载一些文件时给出例外。 – user7347379

回答

0

它看起来像您的应用程序中有几个Cat1RootRef类型,可能从多个程序集或程序集加载多次加载