【发布时间】:2009-01-30 08:52:28
【问题描述】:
我正在使用 WCF 与 Java Web 服务通信。此 Web 服务有一个称为 Authenticate 的方法,它返回一个会话 ID。对此 Web 服务的每个请求都必须在 SOAP 标头中包含此会话 ID。如果会话超时,调用任何方法都会导致返回 SoapException。我想:
- 拦截对 Web 服务的每个调用,
- 检查此特定异常的响应消息
- 如果找到,再次调用 Authenticate 以获取新的 Session ID,并使用更新的 Session ID 再次发送原始消息
我在 Google 上搜索过,但无济于事。我能找到的最接近的事情告诉我,我可以在通道层上完成这个,但根本没有给出示例代码。
请注意,我想在代理类中执行此操作,而不是在调用代理类的代码中。这样代理类的调用者就不必担心自动重新认证。我从自动生成的代理继承并以编程方式进行 WCF 配置。
【问题讨论】:
-
你在找
IClientMessageInspector
标签: .net wcf web-services