编程语言
首页 > 编程语言> > C#-如何在服务结构中为服务远程调用设置超时

C#-如何在服务结构中为服务远程调用设置超时

作者:互联网

我有一个服务结构服务,我从另一个服务中这样调用:

var checkerProxy = new ServiceProxyFactory<ICheck>(uri);
var checker = checkerProxy.CreateSingletonServiceProxy();
success = await checker.CheckMe();

如果要花费超过超时的时间,我想中止通话.

如何为服务结构中的远程呼叫设置超时?

编辑1:注意我可以做这样的事情:

success = checker.CheckMe().Wait(TimeSpan.FromSeconds(10));

但这不会中止远程调用,而只会在超时后停止等待任务完成,而我没有返回值.

解决方法:

您可以使用FabricTransportRemotingSettings在代理中设置超时:

            FabricTransportRemotingSettings settings = new FabricTransportRemotingSettings();
            settings.OperationTimeout = TimeSpan.FromMinutes(5);

            return new ServiceProxyFactory(
                (h) =>
                {
                    return new FabricTransportServiceRemotingClientFactory(settings);
                });

标签:timeout,remoting,azure-service-fabric,c
来源: https://codeday.me/bug/20191025/1929499.html