2012-12-20 11 views
7

Nehmen wir an, ich bin ein ChannelFactory<T> zwischenspeichern und damit Kanäle zu erstellen. Diese Kanäle werden verwendet, um WCF-Anrufe an andere Dienste zu tätigen, und werden dann (sicher) entsorgt.Kann eine ChannelFactory fehlerhaft werden?

Muss ich mir Sorgen machen über eine Situation, in der der zwischengespeicherte fehlerhaft wird und somit für die Erstellung neuer Kanäle unbrauchbar ist? Wenn ja, muss ich es mit einem neuen ersetzen?

Ich würde auch ein reproduzierbares konkretes Beispiel für einen Fall schätzen, in dem ein fehlerhaft wird.

+0

Wenn Sie betroffen sind, können Sie den Status vor dem Zugriff immer als eine gute Maßnahme überprüfen, um nicht auf einen Kanal zuzugreifen, der geschlossen oder fehlerhaft ist. – atconway

+0

@atconway Ich spreche über die ChannelFactory wird fehlerhaft und nicht der Kanal .. Ich will keine Logik implementieren erstellt die Kanäle Fabriken, wenn ich nicht muss ... –

+0

Ich war gerade dabei, die gleiche Frage zu stellen. Es scheint mir, dass die einzigen Fehler, die Sie in ChannelFactory sehen würden, während der Instanziierung der Klasse auftreten würden, solange Ihre individuellen Kanäle korrekt behandelt werden. Sind Sie seither auf weitere Probleme gestoßen? –

Antwort

0

Ich denke nicht, dass Sie sich in diesem Fall Sorgen über Fehlerzustand machen müssen. ChannelFactory ändert seinen Status in Fault, wenn beim Öffnen Probleme auftreten (was passieren könnte, wenn Sie die Open() -Methode aufrufen oder den ersten Kanal erstellen, ohne Open() aufzurufen).

var factory = new ChannelFactory<ITestService>(); 
try 
{ 
    factory.Open(); 
} 
catch 
{ 
    Console.WriteLine(factory.State); 
}