从服务退出

时间:2013-03-20 07:59:50

标签: c# wcf

我目前正以这种方式使用用户名和密码登录:

var client = new ServiceReference.CalcServiceClient();
client.ClientCredentials.UserName.UserName = "test";
client.ClientCredentials.UserName.Password = "test";
client.DoWork();

这很好用。现在,我想添加一种注销方式(用户按下按钮,应该以某种方式发送注销请求)。

这可能吗?如果可行,实现这个的最佳方法是什么?

1 个答案:

答案 0 :(得分:5)

如果WCF配置了PerSession,client.Close();将完成工作。

过程将是:

  • 客户端创建WCF服务的代理并创建方法 呼叫。
  • 创建一个WCF服务实例,用于提供方法响应。
  • 客户端在同一会话中再进行一次方法调用。
  • 同一个WCF服务实例提供方法调用。
  • 当客户端完成其活动时,WCF实例将被销毁 并送到垃圾收集器清理。

关闭后,您将触发清理垃圾收集器。

如果WCF配置了PerCall,则无需担心Close / Logof。我建议总是执行一个明确的Close(和一个使用),但在这种情况下它并不是必需的。

如果WCF配置了SingleInstance ......好吧,也许你做错了:)无论如何,你应该继续关闭()。