当前位置: 代码迷 >> Web Service >> 请教,NET WCF 服务对象的open close 方法 有何用处
  详细解决方案

请教,NET WCF 服务对象的open close 方法 有何用处

热度:104   发布时间:2016-05-02 02:15:12.0
请问,.NET WCF 服务对象的open close 方法 有何用处?
比如以下代码,我如果不调用Open方法的话,ClientSignOn这个method应该也可以直接执行的。
问题是,为什么还要使用open close 方法 呢? 谢谢!





 if (broker == null)
                broker = new UrgentMessengerBrokerClient();
            try
            {
                ClientData clientData = GetEmptyClientData();
                try
                {
                    broker.Open();

                    clientData = broker.ClientSignOn(Environment.UserName, RemoteQueue, MessageDeliveryProtocol) ?? GetEmptyClientData();
                }
                catch
                {
                    broker.Abort();
                    broker = null;
                    ClearCurrentMessages();
                    SignOnId = 0;
                    MessageWindow.HideMe();
                    throw;
                }
                finally
                {
                    if (broker != null && broker.State == System.ServiceModel.CommunicationState.Opened)
                        broker.Close();
                    broker = null;
                }
------解决思路----------------------
这个怎么看都是你的wcf需要执行的代码……
估计这个wcf是以Session对话方式,需要保持上下文的,否则PerCall每次执行都是new上下文的
------解决思路----------------------
我之前写过测试
for循环调用wcf的同一个方法~,不close,到400的时候,401次调用就会超时~~
每次调用都有close,那么会好得多。

原因,就是你调用一次后~ 不显示声明关闭~那么有东西在等待

想象一下飞虎队的通讯,都会在说完话后面加一句over,
不然对方会一直你还有话要说,一直在等待~


至于为什么不open, 我就不知道了

------解决思路----------------------
可以写成using。。。。。。实例化会自动open,但要记得close。
  相关解决方案