比如以下代码,我如果不调用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。