Silverlight - 如何使用DevForce处理嵌套的.ExecuteAsync

时间:2013-01-30 20:55:51

标签: silverlight devforce

我有一个如下情况,它给我错误,看起来像超时。 它缺少一些记录插入。 错误如下:

IdeaBlade.EntityModel.AsyncProcessor 1.<>c__DisplayClass2.<.ctor>b__0(TArgs args) at IdeaBlade.EntityModel.AsyncProcessor 1.信号()    在IdeaBlade.EntityModel.AsyncProcessor`1.b__5(对象x)

的InnerException: [HttpRequestTimedOutWithoutDetail] 参数: 调试资源字符串不可用。通常,密钥和参数提供了足够的信息来诊断问题。见http://go.microsoft.com/fwlink/?linkid=106663&Version=5.0.10411.00&File=System.ServiceModel.dll&Key=HttpRequestTimedOutWithoutDetail

在IdeaBlade.EntityModel.EntityServerProxy。&lt;&gt; c_ DisplayClass14.b _13()    在IdeaBlade.EntityModel.EntityServerProxy.ExecFunc [T](Func 1 func, Boolean funcWillHandleException) at IdeaBlade.EntityModel.EntityServerProxy.ExecuteOnServer[T](Func 1 func,Boolean funcWillHandleException)    在IdeaBlade.EntityModel.EntityServerProxy.InvokeServerMethod(SessionBundle sessionBundle,ITypeWrapper entityManagerType,String typeName,String methodName,Object [] args)    在IdeaBlade.EntityModel.EntityMa

任何想法如何处理它? THX:)

              ......
            .ExecuteAsync(op =>
            {
                var cust =Customers.Where(p => p.IsSelected).ToList();

                           ..........................

                   Ships.ForEach(.......
                              ...........
                        EntityManager.SalesGetSalesQuery(
                         ..............
                        .ExecuteAsync(opn =>
                        {

                                 ................

                                                        });

                    p.UpdateOrders(copyOrders);


                    Orders.Add(copyOrders);


                Save();
            });

3 个答案:

答案 0 :(得分:1)

超时可能发生在多个地方,因此您需要增加所有可能的超时值。

在这种情况下,您应该考虑增加查询(CommandTimeout和Transaction),通信和IIS executionTimeout。

DevForce有一个文档页面,介绍了故障排除超时。它位于http://drc.ideablade.com/devforce-2012/bin/view/Documentation/understand-timeouts

我注意到你的嵌套查询(“SalesGetSalesQuery”)是一个StoredProcQuery。如果StoredProcQueries与默认值不同,则存在一个明显的错误,即StoredProcQueries不遵守事务超时值。 (120秒)我们正在努力修复,但不幸的是,在此期间没有解决方法。

如果不是StoredProcQuery超时,那么上面的链接将帮助您解决它。

答案 1 :(得分:0)

作业编号1是在你弄清楚这么长时间的时候增加超时时间。

这将有助于https://stackoverflow.com/questions/4877315/silverlight-4-ria-services-timeout-issues

答案 2 :(得分:0)

我认为问题不在于异步调用是嵌套的。请记住,第二次(即嵌套的)异步调用只会在第一次完成时执行。

什么异步通话超时?是StoredProcQuery吗? (因为你在循环中调用它们中的任何一个)如果是,那么这是我们正在修复的一个突出的错误。就像我在上一篇文章中提到的那样,没有解决方法。但是,由于此特定的storedProc将日期范围作为参数,因此一种可能性是在较小的日期范围内“打破”此日期范围并发出多个异步调用。 (可能在并行协程中)并不是说这种“解决方法”不是故障证明,因为所有订单都可能在一个小范围内,并且该特定范围的异步调用仍然会超时。

sbelini。