增加silverlight应用程序的超时



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

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

我遇到了同样的问题,我在这里发布了这个问题的答案:Silverlight 4 WCF RIA服务超时问题

答案如下:

我在这里回答了同样的问题:WCF ria服务SP1超时已过期

答案:

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

首先调用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); 
    }
}

我期待你的反馈。

相关内容

  • 没有找到相关文章

最新更新