2012-12-20 21 views
7

Załóżmy, że buforuję plik ChannelFactory<T> i używam go do tworzenia kanałów. Kanały te są używane do wywoływania wywołań WCF do innych usług, a następnie są (bezpiecznie) usuwane.Czy narzędzie ChannelFactory może zostać zaatakowane?

Czy muszę się martwić o sytuację, w której buforowany kod ChannelFactory zostanie zarzucony, a tym samym bezużyteczny do tworzenia nowych kanałów? jeśli tak, czy muszę go zastąpić nowym ChannelFactory?

Byłbym wdzięczny za powtarzalny konkretny przykład przypadku, w którym ChannelFactory zostanie zarzucony.

+0

W razie wątpliwości zawsze można sprawdzić stan przed uzyskaniem dostępu do tak dobrego środka, aby nie uzyskać dostępu do kanału, który został zamknięty lub awaryjny. – atconway

+0

@atconway Mówię o tym, że ChannelFactory jest uszkodzony, a nie kanał. Nie chcę implementować logiki, odtwarza fabryki kanałów, jeśli nie muszę ... –

+0

Właśnie miałem zadać to samo pytanie. Wydaje mi się, że tak długo jak twoje indywidualne kanały są prawidłowo obsługiwane, jedyne błędy widoczne w ChannelFactory pojawią się podczas tworzenia klasy. Czy pojawiły się dodatkowe problemy? –

Odpowiedz

0

Nie sądzę, że w tym przypadku trzeba się martwić o stan Awaria. ChannelFactory zmienia stan na Faulted, gdy ma problemy podczas otwierania (co może się zdarzyć, gdy wywołasz metodę Open() lub utworzysz pierwszy kanał bez wywoływania Open()).