Silverlight异步超时错误

Silverlight异步超时错误,silverlight,asynchronous,wcf,Silverlight,Asynchronous,Wcf,在我的Silverlight应用程序中调用启用Silverlight的WCF服务,用户偶尔会超时。提高服务客户机响应时间的最简单方法是什么 引发的确切异常是:System.TimeoutException:[HttpRequestTimedOutWithoutDetail] 谢谢 可以打开连接的时间数量:属性 连接可以保持非活动状态的时间,在此期间未收到任何应用程序消息,然后将其删除:属性 这可以在silverlight应用程序的ServiceReference.ClientConfig文件的

在我的Silverlight应用程序中调用启用Silverlight的WCF服务,用户偶尔会超时。提高服务客户机响应时间的最简单方法是什么

引发的确切异常是:System.TimeoutException:[HttpRequestTimedOutWithoutDetail]

谢谢

  • 可以打开连接的时间数量:属性
  • 连接可以保持非活动状态的时间,在此期间未收到任何应用程序消息,然后将其删除:属性

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

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

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

此处接受的答案对我不适用。相反,我必须将基本通道强制转换为IContextChannel,并在其上设置OperationTimeout

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

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;
        }


    }
}

那是为了我!更多信息可用,但本文中的代码片段无法编译

我通过在IE中启用兼容模式修复了此问题

默认值和示例:
        PrintReportsService.PrintReportsClient client = new RecipeManager.PrintReportsService.PrintReportsClient();
        client.SetOperationTimeout(new TimeSpan(0, 4, 0));