c# wcf - Ausnahme beim aufrufen von open() auf proxy-Klasse

Ich habe Folgendes problem, ich habe einen WCF-Dienst und die funktioniert Prima in kleinen tests. Jedoch wenn ich versuche eine batch/laden, test, bekomme ich eine InvalidOperationException mit der Meldung angezeigt, wenn die open () - Methode wird aufgerufen, auf dem die proxy-Klasse:

"Auf dem Kommunikationsobjekt "System".ServiceModel.- Kanäle.ServiceChannel nicht geändert werden, während es im Geöffneten Zustand."

Ich habe google gesucht, aber nicht finden können, jemand anderes wirklich zitieren dieses Ausnahme-Nachricht.

Ich denke, dass einige weitere Informationen über den service kann notwendig sein, für eine Diagnose - wenn der service empfängt Daten über seine offen gelegten Methoden, die im Grunde führt einige Verarbeitung und leitet die Daten an einen Dienst im Zusammenhang mit den Daten (unterschiedliche Daten in unterschiedliche routing). Um sicherzustellen, dass der Dienst ausgeführt wird, so schnell wie möglich, in jedem Zyklus der Entgegennahme, Verarbeitung und Weiterleitung der Daten erfolgt durch einen separaten thread im threadpool. könnte das ein problem sein, sich aus einem thread aufrufen proxyClass.Open() während ein anderer schon es zu benutzen? würde ein lock blockieren beseitigen dieses problem, wenn ja ist dies das problem?

danke Leute, - habe ich workikng dieses Projekt für zu lange, und endlich sehen wollen, dass die Rückseite der es - aber dies scheint der Letzte Stolperstein, so dass jede Hilfe sehr geschätzt 🙂

=========================================================================

Dank für die Hervorhebung, dass ich nicht die sein, mit der using Konstrukt für WCF-proxy-Klassen. Aber in dem MSDN-Artikel ist das nicht die klar geschriebene Stück Literatur überhaupt, so dass, eine kurze Frage: sollte ich über einen proxy als solche:

try
{
    client = new proxy.DataConnectorServiceClient();
    client.Open();
    //do work
    client.Close();
 }
 .................. //catch more specific exceptions
 catch(Exception e)
 {
    client.Abort();
 }
  • Teilen Sie den gleichen proxy-Objekt zwischen den threads?
  • ja, es scheint, dass ich bin - und das ist, warum ich fragte über den lock-block...
  • hi nick, ich aktualisiert mein Kommentar unten. Noch meine wenn über das Thema
InformationsquelleAutor | 2009-03-17
Schreibe einen Kommentar