я получаю эту ошибку после того, как я бросаю ошибку в службе WCF ошибки:Как эффективно обрабатывать службы WCF с обработкой
The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.
Ошибка генерируется службой с использованием
throw new FaultException<DatabaseFault>(new DatabaseFault(e.Message));
Как могу ли я обработать это, таким образом, чтобы не требовать перезапуска как клиента, так и службы каждый раз?
Я использую WCF 4.0, C#.
Редактировать 1: Я использую привязку net.tcp для службы WCF.
Редактировать 2: Я хочу эффективный способ работы с WCF. Это не связано с тем, что говорит Джон С.
Редактировать 3: Мой код работает. Но я думаю, что он работает не так, как должен (как он был разработан).
Это консольное приложение, которое принимает мою службу:
using (ServiceHost host = new ServiceHost(typeof(AuctionService)))
{
Console.WriteLine("AuctionWCF.TestHost Started");
host.AddServiceEndpoint(
typeof(IAuctionService),
new NetTcpBinding(),
"net.tcp://localhost:9000/AuctionWcfEndPoint");
host.Open();
Console.WriteLine("AuctionWCF.TestHost listens for requests");
Console.ReadLine();
}
Это клиент:
AuctionService = new ChannelFactory<IAuctionService>(
new NetTcpBinding(),
new EndpointAddress("net.tcp://localhost:9000/AuctionWcfEndPoint")).CreateChannel();
Я делаю что-то не так?
возможного дубликата [Что такое лучший обходной путь для клиента WCF 'using' блокировать вопрос?] (Http://stackoverflow.com/questions/ 573872/what-is-the-best-workaround-for-the-wcf-client-using-block-issue) –
Как это не эффективно? Кроме того, я просто определил вашу точную проблему. Почему вы думаете, что это не так? –
Я не хочу открывать канал каждый раз, когда хочу позвонить в WCF. Я хочу использовать один и тот же канал каждый раз, и если ему не удастся запустить что-то другое. Я только начал работать с WCF, и я хочу, чтобы некоторые стратегии касались этого вопроса. –