【问题标题】:Increase Timeout in silverlight application在silverlight应用程序中增加超时
【发布时间】:2012-03-10 00:14:13
【问题描述】:

我有一个启用 RIA 服务的 silverlight 4 应用程序,silverlight 也使用 WCF 服务,并且所有东西都托管在 IIS 上。 我需要为 WCF 服务和 ria 服务以及 IIS 7.5 增加 silverlight 的超时。 如何设置相关的超时设置(ria 服务、WCF、IIS)? 附言

配置中对应的字段在哪里?

【问题讨论】:

  • 如果您可以发布错误消息,它会更容易提供帮助。传输大量数据(IIS/web.config 设置)时,网站请求可能会超时。或者在查询大型数据集(SQL 命令设置)时,数据库连接可能会超时。您收到的错误消息是什么?
  • 我在问我可以在哪里配置超时,无论在哪里(asp.net、IIS、ria 服务、wcf 服务、silverlight)

标签: wcf silverlight timeout


【解决方案1】:

我遇到了同样的问题,我在这里发布了这个问题的答案:Silverlight 4 WCF RIA Service Timeout Problem

答案如下:

我在这里回答了同样的问题:WCF ria service SP1 timeout expired

答案:

我会解释我的背景,我希望它对我有用。我很确定。

首先调用 RIA 服务,并使用一些域上下文,在我的示例中:

EmployeeDomainContext context = new EmployeeDomainContext();
InvokeOperation<bool> invokeOperation = context.GenerateTMEAccessByEmployee(1, 'Bob');
invokeOperation.Completed += (s, x) =>
    {....};

在此之前没有什么新鲜事。有了这个,我每次在 1 分钟后都面临同样的超时异常。我花了很多时间试图面对如何更改超时定义,我尝试了 Web.config 中所有可能的更改,但什么也没做。解决方案是:

创建一个CustomEmployeeDomainContext,这是一个局部类本地化在生成代码的同一路径,这个类使用钩子方法OnCreate来改变创建的域上下文的行为。在这堂课中,你应该写:

public partial class EmployeeDomainContext : DomainContext
{
    partial void OnCreated()
    {
        PropertyInfo channelFactoryProperty = this.DomainClient.GetType().GetProperty("ChannelFactory");
        if (channelFactoryProperty == null)
        {
            throw new InvalidOperationException(
              "There is no 'ChannelFactory' property on the DomainClient.");
        }

        ChannelFactory factory = (ChannelFactory)channelFactoryProperty.GetValue(this.DomainClient, null);

        factory.Endpoint.Binding.SendTimeout = new TimeSpan(0, 10, 0); 

    }
}

期待您的反馈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    • 1970-01-01
    相关资源
    最近更新 更多