wcf OperationContextScope dispose - PullRequest
       0

wcf OperationContextScope dispose

0 голосов
/ 29 февраля 2012

У меня есть приложение ac #, которое вызывает службу wcf с использованием OperationContextScope scope = new OperationContextScope (i.InnerChannel);

Мне нужно оставить соединения открытыми, чтобы я не мог удалить OperationContextScope с помощью оператора Using.Однако, глядя на профилировщик памяти, я вижу сотни 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);

1 Ответ

2 голосов
/ 29 февраля 2012

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

Когда создается OperationContextScope, текущий OperationContext сохраняется, а новый OperationContext становится тем, который возвращается свойством Current.При удалении OperationContextScope исходный OperationContext восстанавливается.

Очевидно, что они должны располагаться в том порядке, в котором они были созданы.

scope.Dispose();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...