我正在使用WCF与Java Web服务进行通信。此Web服务有一个名为Authenticate的方法,它返回一个会话ID。对此Web服务的每个请求都必须在SOAP标头中包含此会话ID。如果一个会话超时,则调用任何方法都会导致返回SoapException。我想:
我用谷歌搜索这个无济于事。我能找到的最接近的东西告诉我,我可以在通道层完成此操作,但根本没有提供示例代码。
请注意,我想在代理类中执行此操作,而不是在调用代理类的代码中执行此操作。这样,代理类的调用者不必担心自动重新身份验证。我继承自动生成的代理并以编程方式执行WCF配置。
答案 0 :(得分:0)
我会尝试为你的WCF客户端包装一个“getter”,以便在所有调用之前调用authentification函数。
public WCFClient GetServiceInstance()
{
client.DoAuth();
return client;
}
您还可以为此方法添加一个条件,以便每隔1分钟左右调用一次DoAuth()。