您知道如何向客户端添加服务引用,然后它会创建这个漂亮的代理,以便您可以在服务器端调用方法吗?像这样的东西:
MyServiceClient proxy = new MyServiceClient();
proxy.GetMessage();
关于刚刚发生的事情,我有几个问题:
何时建立与服务器的会话?当我添加服务参考时?当我创建代理?或者当我调用该方法时?
如果我要创建另一个
MyServiceClient
实例,它将是我们之前创建的实例的单例副本(代理)还是完全是一个新实例?
默认情况下没有“会话”。当您进行服务调用时会建立一个新连接,并且只会持续到收到响应为止。如果要对多个调用进行分组(以确保它们使用相同的实例并依次强制执行处理),则需要在服务合同上使用SessionMode属性,这将因此影响代理客户端的行为方式。
检查这些帖子 - 这将使您对 WCF 代理有很好的了解,并且应该回答您的问题 - http://blogs.msdn.com/b/wenlong/archive/2007/10/27/performance-improvement-of-wcf -client-proxy-creation-and-best-practices.aspx http://blogs.msdn.com/b/wenlong/archive/2007/10/26/best-practice-always-open-wcf-client-proxy-明确-何时共享.aspx
调用该方法时会建立会话。这是可选的 - WCF 中的默认设置是没有会话。一般来说,如果您创建一个新代理,那么它与以前的代理完全分开。有一些例外: