-1

您知道如何向客户端添加服务引用,然后它会创建这个漂亮的代理,以便您可以在服务器端调用方法吗?像这样的东西:

MyServiceClient proxy = new MyServiceClient();
proxy.GetMessage();

关于刚刚发生的事情,我有几个问题:

  1. 何时建立与服务器的会话?当我添加服务参考时?当我创建代理?或者当我调用该方法时?

  2. 如果我要创建另一个MyServiceClient实例,它将是我们之前创建的实例的单例副本(代理)还是完全是一个新实例?

4

3 回答 3

1

默认情况下没有“会话”。当您进行服务调用时会建立一个新连接,并且只会持续到收到响应为止。如果要对多个调用进行分组(以确保它们使用相同的实例并依次强制执行处理),则需要在服务合同上使用SessionMode属性,这将因此影响代理客户端的行为方式。

于 2013-07-20T12:32:07.567 回答
0

调用该方法时会建立会话。这是可选的 - WCF 中的默认设置是没有会话。一般来说,如果您创建一个新代理,那么它与以前的代理完全分开。有一些例外:

  • 您可以强制您的代理使用相同的会话(例如,如果您为他们提供共享令牌的通用客户端安全行为)
  • 服务器可以决定将所有请求视为属于同一会话(PerHost 实例化),在这种情况下,所有请求(来自所有代理,而不仅仅是您机器上的那些)都将落在同一服务器上下文中。
于 2013-07-20T17:10:15.723 回答