我正在服务之间构建一些路由功能。原始服务和做路由的服务具有相同的配置;两者都使用具有以下绑定配置的 netTcpBinding:
netTcpBinding
安全模式="消息"
消息 clientCredentialType="用户名"
服务行为使用我们在机器上安装的 AspNet Membership Provider 和客户端证书。
当我关闭消息安全时,它会很好地中继,但是当它打开时,我得到以下异常:
“无法处理消息。这很可能是因为操作 ' http://foo/Whatever ' 不正确,或者因为消息包含无效或过期的安全上下文令牌,或者因为绑定之间不匹配*。安全如果服务由于不活动而中止通道,则上下文令牌将无效。为了防止服务过早中止空闲会话,请增加服务端点绑定的接收超时。(强调我的)
我的想法是证书在消息上运行了两次(一次在原始调用上,然后在中继上),这就是破坏消息安全令牌的原因。
问题:
我的想法有目标吗?
有没有办法在没有令牌服务复杂性的情况下继续使用消息安全进行路由?