Я использую службу WCF в своей службе Windows в методе Onstart, мой вызов службы выглядит следующим образом
try
{
using (BackupUtilityWcfService.BackupUtilityClient oBackupUtilityClient = new BackupUtilityWcfService.BackupUtilityClient())
{
oBackupUtilityClient.ReadSnapshotMsmq();
oBackupUtilityClient.ReadReplicationMsmq();
oBackupUtilityClient.ReadReplicationCompleteMsmq();
}
}
}
catch
{
}
Но когда я вызываю свою службу WCF, я получаю эту ошибку
Служба не может быть запущена. System.ServiceModel.CommunicationObjectFaultedException: объект связи System.ServiceModel.Channels.ServiceChannel нельзя использовать для связи, так как он находится в состоянии Faulted.
Трассировка стека сервера: в System.ServiceModel.Channels.CommunicationObject.Close (время ожидания TimeSpan)
Что в этом плохого?
1 ответ
Очевидно, что первый удаленный вызов, который вы делаете (ReadSnapshotMsmq), создает исключение на стороне службы, поэтому клиентский канал становится «сбойным». В этом случае вы не сможете повторно использовать клиентский канал для дальнейших обращений к вашему сервису.
Вы можете поместить удаленный вызов функции в блок try-catch, чтобы перехватить исключение и корректно закрыть неисправный канал (или использовать новый для последующих вызовов).
Похожие вопросы
Новые вопросы
wcf
Windows Communication Foundation является частью .NET Framework, которая предоставляет унифицированную модель программирования для быстрого создания сервис-ориентированных приложений.