2012-12-20 26 views
7

Giả sử tôi đang lưu vào bộ nhớ cache ChannelFactory<T> và sử dụng nó để tạo kênh. Các kênh này được sử dụng để thực hiện các cuộc gọi WCF đến các dịch vụ khác và sau đó được xử lý an toàn.Kênh ChannelFactory có bị lỗi không?

Tôi có cần phải lo lắng về một tình huống mà bộ nhớ đệm ChannelFactory bị lỗi và do đó không thể sử dụng để tạo kênh mới? nếu có, tôi có cần thay thế bằng ChannelFactory mới không?

Tôi cũng sẽ đánh giá cao ví dụ cụ thể tái sản xuất đối với trường hợp ChannelFactory bị lỗi.

+0

Nếu có liên quan, bạn luôn có thể kiểm tra trạng thái trước khi truy cập như biện pháp tốt để không truy cập kênh đã bị đóng hoặc bị lỗi. – atconway

+0

@atconway Tôi đang nói về ChannelFactory bị lỗi và không phải là kênh .. Tôi không muốn thực hiện logic việc tạo lại các nhà máy kênh nếu tôi không phải ... –

+0

Tôi sắp hỏi cùng một câu hỏi. Dường như với tôi rằng miễn là các kênh riêng lẻ của bạn được xử lý đúng cách, các lỗi duy nhất bạn sẽ thấy trong ChannelFactory sẽ xảy ra trong quá trình khởi tạo lớp. Bạn có gặp phải bất kỳ vấn đề nào khác không? –

Trả lời

0

Tôi không nghĩ rằng bạn cần phải lo lắng về trạng thái Lỗi trong trường hợp đó. ChannelFactory thay đổi trạng thái của nó thành Lỗi khi gặp sự cố trong khi mở (điều có thể xảy ra khi bạn gọi phương thức Open() hoặc tạo kênh đầu tiên mà không cần gọi Open()).

var factory = new ChannelFactory<ITestService>(); 
try 
{ 
    factory.Open(); 
} 
catch 
{ 
    Console.WriteLine(factory.State); 
} 
Các vấn đề liên quan