Open zhmi19811015 opened 4 years ago
CityCode=210200,CityName="大连市" 目前会触发这个问题;我正在尝试在上述提到的位置直接返回null
CityCode=210200,CityName="大连市" 目前会触发这个问题;我正在尝试在上述提到的位置直接返回null
直接返回null还是会触发 “OpenRiaServices.DomainServices.Client.DomainOperationException”的未经处理的异常。我进行了如下的失败尝试:
1、在多个受影响位置,当 publishCtx.GetAirByCity(230600) HasError时,执行MarkErrorAsHandled(); 2、在Load时指定 throwOnError 为false以阻止异常 3、使用Task 的 WaitAll 和 WaitAny 并增加异步任务的异常处理
上述解决办法都无效,无法阻止该异常。
目前解决办法是:不再通过遍历站点的办法进行数据获取,而是直接调用获取省级所有站点数据(GetProvincePublishLives),然后通过逐层匹配,将站点具体信息获取到。目前暂未遇到任何问题。
` IEnumerable citylives = await publishCtx.Load(publishCtx.GetCityAQIPublishLivesQuery()).ResultAsync();
`
执行上述foreach循环时报以下错误
CityCode:220300 CityCode:220400 CityCode:220500 CityCode:220600 CityCode:220700 CityCode:220800 CityCode:222400 CityCode:230100 CityCode:230200 CityCode:230300 CityCode:230400 CityCode:230500 CityCode:230600
未经处理的异常: 未经处理的异常: OpenRiaServices.DomainServices.Client.DomainOperationException: Invoke operation 'GetAirByCity' failed. 引发类型为“OpenRiaServices.DomainServices.Client.DomainOperationException”的异常。 在 OpenRiaServices.DomainServices.Client.OperationBase.Complete(Exception error) 位置 C:\Users\danie\GitHub\openriaservices\OpenRiaServices.DomainServices.Client\Framework\Silverlight\OperationBase.cs:行号 299 在 OpenRiaServices.DomainServices.Client.InvokeOperation.Complete(Exception error) 位置 C:\Users\danie\GitHub\openriaservices\OpenRiaServices.DomainServices.Client\Framework\Silverlight\Data\InvokeOperation.cs:行号 212 在 OpenRiaServices.DomainServices.Client.DomainContext.CompleteInvoke(IAsyncResult asyncResult) 位置 C:\Users\danie\GitHub\openriaservices\OpenRiaServices.DomainServices.Client\Framework\Silverlight\Data\DomainContext.cs:行号 1073 在 OpenRiaServices.DomainServices.Client.DomainContext.<>cDisplayClass61_1.b2(Object ) 位置 C:\Users\danie\GitHub\openriaservices\OpenRiaServices.DomainServices.Client\Framework\Silverlight\Data\DomainContext.cs:行号 1026
在 System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
在 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
在 System.Threading.ThreadPoolWorkQueue.Dispatch()
在 System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
System.AggregateException: 发生一个或多个错误。 ---> System.ArgumentNullException: 缓冲区不能为 null。
参数名: buffer
在 System.IO.MemoryStream..ctor(Byte[] buffer, Boolean writable)
在 System.IO.MemoryStream..ctor(Byte[] buffer)
在 Com.Hzexe.Air.OpenAirLibrary.EntityQueryExt.Decompress(Byte[] baseBytes)
在 Com.Hzexe.Air.OpenAirLibrary.EntityQueryExt.<>c DisplayClass1_0`1.b 0()
在 System.Threading.Tasks.Taskd__7.MoveNext() 位置 E:\test123\openair\example\Program.cs:行号 204
--- 内部异常堆栈跟踪的结尾 ---
在 System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
在 System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
在 System.Threading.Tasks.Task.Wait()
在 Example.Program.Main(String[] args) 位置 E:\test123\openair\example\Program.cs:行号 37
1.InnerInvoke() 在 System.Threading.Tasks.Task.Execute() --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter
1.GetResult() 在 Example.Program.