从服务退出

Bv2*_*202 1 c# wcf

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

var client = new ServiceReference.CalcServiceClient();
client.ClientCredentials.UserName.UserName = "test";
client.ClientCredentials.UserName.Password = "test";
client.DoWork();
Run Code Online (Sandbox Code Playgroud)

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

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

Jor*_*rdi 5

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

这个过程将是:

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

使用Close,您将触发垃圾收集器清理.

如果WCF配置了PerCall,则无需担心Close/Logof.我建议总是执行显式关闭(和使用),但在这种情况下它并不是真的必要.

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