【发布时间】:2010-10-03 12:54:20
【问题描述】:
我正在使用 WCF 到使用安全模式“TransportWithMessageCredential”的肥皂端点。
WCF 客户端/服务器使用 SCT(安全上下文令牌)来维护安全连接,并且在一般情况下按预期工作。
但是,在一段时间不活动后,SCT 将过期,下一次方法调用将引发 MessageSecurityException:
从另一方收到不安全或不正确安全的故障。故障代码及详情见内部FaultException
内部异常:
无法处理该消息。这很可能是因为操作“http://tempuri.org/IMyService/MyMethod”不正确,或者因为消息包含无效或过期的安全上下文令牌,或者因为绑定之间存在不匹配。如果服务因不活动而中止通道,则安全上下文令牌将无效。为防止服务过早中止空闲会话,请增加服务端点绑定的接收超时。
在后续调用中,当我看到 CommunicationState 出现故障时,我会更新连接。但是我无法找到一种方法来在调用我的方法之前抢先检查 SCT 是否已过期。
【问题讨论】:
-
这与我在这里问的问题基本相同:stackoverflow.com/questions/494906/… 非常有兴趣查看解决方案。我希望看到一个使用内置 WCF 挂钩的解决方案,并且不涉及更改代理类(因为我的是自动生成的)
-
Dasblonde 下载似乎可以在这里找到:dasblonde.net/downloads/Proxies.zip
标签: .net wcf performance