Wcf SessionId属性的每个部分是什么意思?
我有一个每次调用的服务,在我的客户端代理中,我在方法完成时关闭代理。因此,当我想调用另一个方法时,我会实例化一个新的代理 在第二个调用中,我可以看到sessionId的uuid部分在两个调用中是相同的,但是id部分是不同的 所以如果我试着比较这两个sessionId是不同的 我想知道id部分是否真的很重要,uuid是否相同,是否真的是相同的客户机,尽管id部分不同Wcf SessionId属性的每个部分是什么意思?,wcf,Wcf,我有一个每次调用的服务,在我的客户端代理中,我在方法完成时关闭代理。因此,当我想调用另一个方法时,我会实例化一个新的代理 在第二个调用中,我可以看到sessionId的uuid部分在两个调用中是相同的,但是id部分是不同的 所以如果我试着比较这两个sessionId是不同的 我想知道id部分是否真的很重要,uuid是否相同,是否真的是相同的客户机,尽管id部分不同 非常感谢。如果关闭代理,则无论会话是否受支持,服务将被销毁,会话将终止(如果存在) 如果希望在多个调用中共享同一个sessionId
非常感谢。如果关闭代理,则无论会话是否受支持,服务将被销毁,会话将终止(如果存在) 如果希望在多个调用中共享同一个sessionId,则需要确保绑定和服务都支持会话(SessionMode.Allowed或SessionMode.Required),并在同一个客户端中执行调用
新客户=新会话嗯,我的服务需要会话。因此,如果我关闭客户机或实例化一个新的客户机,我将获得一个新会话,因此如果我的合约集正在初始化和注册方法的属性,我将永远无法使用任何正在初始化的方法。因此,唯一的解决方案是在应用程序启动时实例化一个代理,并保持代理和连接的活动状态,直到应用程序关闭为止?无论何时创建服务对象,如果只有会话与服务关联,则创建会话。为了在同一会话中对服务执行某些调用,您需要为同一服务对象调用它们。跟踪OperationContext.Current.SessionId,以确保会话等效。创建代理调用耦合方法,然后关闭代理。所有调用都应该共享相同的SessionId。然后创建代理、调用方法、关闭代理并重复执行这样的场景。每次SessionId都应该是不同的。