wcf OperationContextScope dispose
本文关键字:dispose OperationContextScope wcf | 更新日期: 2023-09-27 18:26:01
我有一个c#应用程序,它使用OperationContextScope scope=new OperationContextScope(I.InnerChannel)调用wcf-serivce;
我需要保持连接打开,这样我就不能使用Using语句来处理OperationContextScope。然而,当查看内存探查器时,我看到了数百个OperationContextScope。我需要处理作用域,但当我调用.dispose()时,我收到一个错误,说它不正常。我不知道为什么我不能处理范围。
有人知道如何正确处理OperationContextScope吗?下面是我代码的一部分。
BasicHttpBinding wsbinding = null;
OperationContextScope scope = null;
wsbinding = new BasicHttpBinding(BasicHttpSecurityMode.None);
wsbinding.MaxBufferSize = 2147483647;
wsbinding.MaxReceivedMessageSize = 2147483647;
wsbinding.Name = "BasicHttpBinding_Iretail";
i = new IretailClient(wsbinding, new EndpointAddress(commonStuff.EndpointAddress));
scope = new OperationContextScope(i.InnerChannel);
来源http://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontextscope.aspx:
创建OperationContextScope时,当前OperationContext存储,并且新的OperationContext变为当前属性。当OperationContextScope被释放时恢复了原始OperationContext。
显然,它们必须按照创建时的相反顺序进行处理。
scope.Dispose();