Я использую службу 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)

Что в этом плохого?

wcf
0
viky 29 Мар 2011 в 12:52

1 ответ

Очевидно, что первый удаленный вызов, который вы делаете (ReadSnapshotMsmq), создает исключение на стороне службы, поэтому клиентский канал становится «сбойным». В этом случае вы не сможете повторно использовать клиентский канал для дальнейших обращений к вашему сервису.

Вы можете поместить удаленный вызов функции в блок try-catch, чтобы перехватить исключение и корректно закрыть неисправный канал (или использовать новый для последующих вызовов).

0
Hadi Eskandari 29 Мар 2011 в 13:48