2011-06-04 52 views
2

在超时后,代理服务器不会发生故障,我仍然可以使用它。
建议使用该代理还是应该放弃它并创建一个新代理?我可以在发生TimeoutException后使用wcf代理吗?

+0

只要通道没有故障(因为服务端有异常),您应该可以继续使用它。 – 2011-06-04 13:22:03

回答

0

我会说bin它。超时之一的一个特殊问题是,你的不知道在另一端发生了什么,因为你的客户放弃了听。如果你有一个有状态的连接,所有的投注现在都关闭。

如果你是无国籍的,你可能会逃避它。无论是哪种情况,如果在执行影响数据的操作时超时,您可能会验证当前状态。如果您只是查询数据,事情会更简单。

0

为什么我们应该重用代理实例?

创建代理并不是一个昂贵的操作。 直到您向该服务提出请求,才会真正完成任务。

除了重复使用它意味着在每次发出另一个请求之前检查它的故障状态。

如果您有登录/退出架构,则可以缓存登录后返回的令牌并将其用于后续请求。

+0

这并非总是如此 - 如果您在代码中定义端点/绑定,重新创建代理可能会非常昂贵,因为它始终会创建新的“ChannelFactory”。同样在.NET 3.0的情况下,它总是昂贵的。 – 2011-06-04 14:06:39

相关问题