gpt4 book ai didi

Silverlight 4 WCF RIA 服务超时问题

转载 作者:行者123 更新时间:2023-12-04 06:41:50 25 4
gpt4 key购买 nike

我有一个 Silverlight 4 用户控件,它调用一个运行时间很长的 WCF RIA 服务。如下图,我在增加默认超时时间。

_domainContext = new WindowsDashboardDomainContext();
// Increase timeout -- this can be a very long running query
((WebDomainClient<WindowsDashboardDomainContext.IWindowsDashboardDomainServiceContract>)
_domainContext.DomainClient).ChannelFactory.Endpoint.Binding.SendTimeout = new TimeSpan(99, 0, 0);
_domainContext.GetSections( "All", "All", "All" ).Completed += GetAllSectionsCompleted;

不幸的是,它似乎忽略了这个超时,仍然抛出了超时异常:

Error: Unhandled Error in Silverlight Application Load operation failed for query 'GetClicks'. An error occurred while executing the command definition. See the inner exception for details. Inner exception message: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)



为什么会这样?

最佳答案

我在这里回答了同样的问题: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,它是一个部分类 本地化在生成代码的同一路径并且这个类使用钩子(Hook)方法 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);

}
}

我期待您的反馈。

关于Silverlight 4 WCF RIA 服务超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4150493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com