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);

wcf OperationContextScope dispose

来源http://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontextscope.aspx:

创建OperationContextScope时,当前OperationContext存储,并且新的OperationContext变为当前属性。当OperationContextScope被释放时恢复了原始OperationContext。

显然,它们必须按照创建时的相反顺序进行处理。

scope.Dispose();