【问题标题】:Can I use a wcf proxy after I get a TimeoutException?收到 TimeoutException 后是否可以使用 wcf 代理?
【发布时间】:2011-06-04 13:17:40
【问题描述】:

代理在超时异常后没有出现故障,我仍然可以使用它。
是否建议使用该代理或者我应该中止它并创建一个新的?

【问题讨论】:

  • 只要通道没有故障(因为服务端出现异常),您应该可以继续使用它。

标签: .net wcf proxy timeoutexception


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    创建代理并不是一项昂贵的操作。 在您向服务发出请求之前,什么都不会真正完成。

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

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

    【讨论】:

    • 这并不总是正确的——如果您在代码中定义端点/绑定,重新创建代理可能是相当昂贵的操作,因为它总是创建新的ChannelFactory。同样在 .NET 3.0 的情况下,它总是很昂贵。
    猜你喜欢
    • 1970-01-01
    • 2011-07-22
    • 2014-03-31
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    相关资源
    最近更新 更多