【问题标题】:WCF expired token?WCF 过期令牌?
【发布时间】:2010-03-14 09:30:20
【问题描述】:

我在我的服务配置和消息安全中使用 wshttpbinding。我的应用程序运行良好,但在客户端调用任何服务方法 10 或 20 分钟后,由于我的安全令牌将过期,并且连接无法工作,因此引发异常。

一种解决方案是重新创建连接以创建新令牌(但我不能使用它,因为我的服务包含数据上下文,如果我重新创建服务,数据上下文将是新的)。

其他解决方案是将安全类型从消息更改为传输(我尝试了此解决方案但没有任何更改,因为引发了另一个异常)。

【问题讨论】:

  • 您不能确保每次建立新连接时都不会重新创建您的数据上下文吗?
  • 感谢您的回复,是的-我确定因为我的前辈开发了该框架,他说每次建立新的连接(Wcf 服务)数据上下文都会更新!所以我无法重新创建连接

标签: wcf


【解决方案1】:

我假设当您说数据上下文时,您的意思是实体框架数据上下文。

您的解决方案似乎取决于客户端返回时可用的数据上下文。这是一种非常脆弱的方法。即使您增加了所有相关的超时时间,如果服务器重新启动,您仍然会收到错误。

看看 WCF 数据服务http://msdn.microsoft.com/en-us/data/bb931106.aspx

【讨论】:

    【解决方案2】:

    最佳解决方案是在每个调用服务方法中重新创建连接。 但在我的位置上,我不能使用它,因为我们的框架提供了特殊问题。 即使有我的特殊问题,我也会使用特殊技巧的解决方案。;)

    我让一个方法返回 true。我在上次调用后 10 分钟调用它。这使得服务令牌在应用程序关闭之前永远不会过期。 最后使用 Try-Catch 并处理 Service 抛出的异常。

    特别感谢“Shiraz Bhaiji”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-10
      • 2014-06-27
      • 2016-02-15
      • 2017-03-04
      • 2017-11-01
      • 1970-01-01
      • 2019-12-11
      • 2016-11-29
      相关资源
      最近更新 更多