我在服务配置和消息安全性中使用wshttpbinding。我的应用运行良好,但在10或20分钟后,当客户端调用任何服务方法时,都会抛出异常,因为我的安全令牌将过期,连接将无法工作。
一种解决方案是重新创建连接以创建新的令牌(但我不能使用此方法,因为我的服务包含datacontext,如果我重新创建服务,则datacontext将是新的)。
另一种解决方案是将安全性类型从消息更改为传输(我尝试了此解决方案,但没有进行任何更改,因为抛出了另一个异常)。
发布于 2010-03-14 20:09:02
我假设当你说datacontext时,你指的是Enitity Framework datacontext。
您的解决方案似乎依赖于客户端返回时可用的datacontext。这是一种非常脆弱的方法。即使您增加了所有相关的超时,例如,如果服务器重新启动,您仍然会收到错误。
查看WCF Data Services http://msdn.microsoft.com/en-us/data/bb931106.aspx
发布于 2010-04-24 19:38:44
最好的解决方案是在每个调用服务方法中重新创建连接。但在我的位置上,我不能使用它,因为我们的框架提供了特殊的问题。即使对于我的特殊问题,我也会使用特殊技巧的解决方案。;)
我让一个方法返回true.and,我在最后一次call.This后10分钟调用它,使服务令牌在应用程序关闭之前从不过期。最后一次使用Try-Catch和处理服务抛出的异常。
特别感谢"Shiraz Bhaiji“
https://stackoverflow.com/questions/2441718
复制相似问题