2010-12-01 8 views
2

In den alten Tagen (. NET Framework 3.5) müssen wir vorsichtig sein, um die WCF-Client-Proxys zu schließen.WCF 4 schließen Client-Proxy

In WCF 4 ist das Schließen nicht vom Client verfügbar. Aber es ist innerhalb des Proxy verfügbar.

public class ServiceProxy : System.ServiceModel.ClientBase<IService>, ILoginService 
{ 
} 

Schließen des Client-Proxy nicht mehr erforderlich? Oder wie machen wir das?

+0

Ich bin nicht sicher, was Sie Ich habe gerade einen WCF-Beispieldienst und einen Client (beide .NET 4) erstellt, und die Clientklasse im Proxy ('ServiceReference1.Service1Client') hat die gleichen Methoden' Close() 'und' Abort() ' in .NET 3.5. –

Antwort

2

WCF-Proxy muss explizit geschlossen werden, und wenn Sie die using() -Anweisung verwenden, haben Sie die Möglichkeit, die ursprüngliche Ausnahme zu verlieren. Sie können Details zu diesem Problem in den folgenden Posts finden.

Von: http://geekswithblogs.net/SudheersBlog/archive/2009/09/01/134430.aspx

http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/b95b91c7-d498-446c-b38f-ef132989c154 http://geekswithblogs.net/marcel/archive/2007/05/01/112159.aspx

Es ist eine empfohlene bewährte Methode immer schließen die Proxy, wenn der Client damit fertig ist, da das Schließen des Proxy die Sitzung mit dem Dienst beendet und die Verbindung schließt.

Alternativ können Sie die Methode Dispose() des Proxys verwenden, um sie zu schließen. Der Vorteil der Methode Dispose() ist, dass Sie die Anweisung using verwenden kann es sogar im Angesicht von Ausnahmen zu nennen

Scheck

http://geekswithblogs.net/SoftwareDoneRight/archive/2008/05/23/clean-up-wcf-clients--the-right-way.aspx

http://geekswithblogs.net/bcaraway/archive/2008/07/06/123622.aspx

+0

Danke, es stellte sich heraus, dass es eine fehlende Referenz zu system.servicemodel in der Business-Schicht war. –

+0

Sie sind immer willkommen buddy =) – Singleton

+0

Erster Teil wörtlich kopiert von http://geekswithblogs.net/SudheersBlog/archive/2009/09/01/134430.aspx –

Verwandte Themen