none
双工通信,会话模式,客户端要退出了,客户端与服务端建立的会话通道,是在客户端close,还是在服务端关闭, RRS feed

答案

全部回复

  • wuji543says:
     双工通信,会话模式,客户端要退出了,客户端与服务端建立的会话通道,是在客户端close,还是在服务端关闭,
    sevendays says:
     服务端清除客户端通道信息吧
    wuji543says:
     如何清除,这正是我想了解的
     我发现,目前是没有清楚
     是不是客户端一退出,服务端会话数自动减少
    Mog says:
     应该是呀
     客户端调用close就行了
    wuji543says:
     不调用呢,就是客户端程序直接退出
    sevendays says:
     sl目前不能捕获异常退出
     好像是的
     做心跳包
    Mog says:
     没试过呀,听说注册operationcontext.current.channel.faulted事件可以接收客户端异常退出。
     在服务里
     但是我猜服务端不会立马发现客户端退出

    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年3月30日 9:58
    版主
  • wuji543says:
     不是的,我就是做C/S的MIS程序
     双工用来服务端可以主动连系客户端
     因为双工的话,客户端调用服务端的服务后,连接不能关闭,这时服力端就会有一个会话数的问题
     我想了解的是,这个服务端占用的会话数, 是在什么时候清除的
     是在客户端close后清除,还是只要客户端退出程序,就会清除其占用的服务端会话数,还是要服务端清除
    宣安 says:
     你是怎样使服务端能够主动向客户端发消息的哈?
    Mog says:
     我理解应该是服务端对应channel进入fault或close状态时,会被清除
    wuji543says:
     宣安 我和你一样,就是把客户端通道保存起来,然后在服务端主动回调
    宣安 says:
     哦,那如果客户端强制退出的话,我的Callback集合要怎样清理掉这个Callback呢
    wuji543says:
     我用的一个time隔一段时间,回调一个客户端,如果回调失败,就把失败的客户端从服务端的Callback集合中删除
     不知道还有没有更好的办法
    宣安 says:
     是呀,用这个方法也怪别扭的,找找别的方法

    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年3月30日 10:00
    版主
  • 通道可以正常关闭,也可以非正常关闭。如果通道正常关闭,则套接字也将关闭,并调用基类 <tt>OnClose</tt> 方法。如果引发异常,则基础结构将调用 <tt>Abort</tt> 来确保清除该通道。

     

    也就是说,客户端通道异常不异常 都是可以被清理的。

     服务端通道有所不同,是通过通道侦听器来侦听消息的,在本机特定的地址上,保持侦听消息。大家可以参考一下《WCF技术内幕》翻译38:第2部分_第7章_通道管理器:通道侦听器


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年3月30日 10:01
    版主
  • 通道可以正常关闭,也可以非正常关闭。如果通道正常关闭,则套接字也将关闭,并调用基类 <tt>OnClose</tt> 方法。如果引发异常,则基础结构将调用 <tt>Abort</tt> 来确保清除该通道。

     

    也就是说,客户端通道异常不异常 都是可以被清理的。

     服务端通道有所不同,是通过通道侦听器来侦听消息的,在本机特定的地址上,保持侦听消息。大家可以参考一下《WCF技术内幕》翻译38:第2部分_第7章_通道管理器:通道侦听器


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum

    《WCF技术内幕》翻译38:第2部分_第7章_通道管理器:通道侦听器
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年3月30日 10:15
    版主