【问题标题】:Silverlight Async Timeout ErrorSilverlight 异步超时错误
【发布时间】:2008-12-01 16:15:34
【问题描述】:

在我的 silverlight 应用程序中调用启用了 Silverlight 的 WCF 服务,有时用户会遇到超时。增加服务客户端响应时间的最简单方法是什么?

抛出的确切异常是:System.TimeoutException: [HttpRequestTimedOutWithoutDetail]

谢谢

【问题讨论】:

    标签: silverlight asynchronous wcf


    【解决方案1】:

    这可以在silverlight应用的ServiceReference.ClientConfig文件的节点中设置。

    【讨论】:

    【解决方案2】:

    这里接受的答案对我不起作用。相反,我必须将基本通道转换为 IContextChannel,并在其上设置 OperationTimeout。

    为此,我必须创建一个包含部分类的新文件,该文件与 ServiceReference 的名称相匹配。就我而言,我有一个 PrintReportsService。代码如下。

    using System;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Ink;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    
    namespace RecipeManager.PrintReportsService 
    {
        public partial class PrintReportsClient : System.ServiceModel.ClientBase<RecipeManager.PrintReportsService.PrintReports>, RecipeManager.PrintReportsService.PrintReports 
        {
            public void SetOperationTimeout(TimeSpan timeout)
            {
                ((System.ServiceModel.IContextChannel)base.Channel).OperationTimeout = timeout;
            }
    
    
        }
    }
    

    然后,当我创建客户端时,我会执行以下操作:

            PrintReportsService.PrintReportsClient client = new RecipeManager.PrintReportsService.PrintReportsClient();
            client.SetOperationTimeout(new TimeSpan(0, 4, 0));
    

    这对我有用! here 提供了更多信息,但本文中的代码 sn-p 无法编译。

    【讨论】:

      【解决方案3】:

      这可以设置,但有一个由底层 HTTP 库定义的上限(我认为是五分钟)。请注意,使用更高的值将回退到上限。另外,请注意,您可能还需要在服务器上配置超时。

      【讨论】:

        【解决方案4】:

        我通过在 IE 中启用兼容模式解决了这个问题

        【讨论】:

          【解决方案5】:

          我认为您应该从 Silverlight 应用程序对服务器实施基于计时器的回调,而不是更改超时,以便会话不会过期。这将为您的所有应用程序消除较长超时的开销。

          【讨论】:

            猜你喜欢
            • 2017-06-10
            • 2017-07-24
            • 2013-07-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多