有关WCF代理会话的问题
您知道如何向客户机添加服务引用,然后它会创建这个漂亮的代理,这样您就可以调用服务器端的方法了吗?大概是这样的:有关WCF代理会话的问题,wcf,wcf-proxy,Wcf,Wcf Proxy,您知道如何向客户机添加服务引用,然后它会创建这个漂亮的代理,这样您就可以调用服务器端的方法了吗?大概是这样的: MyServiceClient proxy = new MyServiceClient(); proxy.GetMessage(); 关于刚才发生的事情,我有几个问题: 与服务器的会话何时建立?当我添加服务引用时?当我创建代理时?或者当我调用该方法时 如果我将创建另一个MyServiceClient实例,它将是我们之前创建的实例(代理)的单一副本,还是完全是一个新实例 默认情况下没有
MyServiceClient proxy = new MyServiceClient();
proxy.GetMessage();
关于刚才发生的事情,我有几个问题:
MyServiceClient
实例,它将是我们之前创建的实例(代理)的单一副本,还是完全是一个新实例默认情况下没有“会话”。当您拨打服务电话时,将建立新连接,并仅持续到收到响应为止。如果要对多个调用进行分组(以确保它们使用相同的实例,并依次强制执行处理),则需要使用服务合同上的属性,这将影响代理客户端的行为。检查这些帖子-这将让您非常深入地了解WCF代理,并回答您的问题-
会话在您调用该方法时建立。这是可选的-WCF中的默认设置是没有会话。 通常,如果您创建一个新代理,那么它将与以前的代理完全分离。有一些例外情况:
- 您可以强制代理使用相同的会话(例如,如果您为它们提供共享令牌的通用客户端安全行为)
- 服务器可以决定它将所有请求视为属于同一会话(每个主机实例),在这种情况下,所有请求(来自所有代理,而不仅仅是您机器上的代理)都将到达同一服务器上下文