Обработка сервиса недоступных ошибок в asp.net - PullRequest
1 голос
/ 12 мая 2010

У меня есть приложение asp.net, которое всегда будет взаимодействовать со службой wcf для транзакций с данными. Мой вопрос здесь, если служба не работает или по каким-то причинам истекло время ожидания. Как мне нужно обработать исключение serivce из моего потребляющего приложения.

Мы используем исключения faultcontract для обработки любых исключений времени выполнения, с которыми мы столкнулись в сервисе. Но если сама служба не запущена, как я могу отправить обычное сообщение пользователю, говорящее «Служба недоступна, пожалуйста, запустите службу».

Ценю вашу помощь в этом.

Спасибо, Киран

1 Ответ

0 голосов
/ 12 мая 2010

Если ваша служба принимает http get, одним из вариантов будет запрос метаданных службы от клиента, используя что-то вроде этого:

var svcUri = new Uri("http://yourhost/service.svc?wsdl");
MetadataExchangeClient mexClient = new MetadataExchangeClient(svcUri, MetadataExchangeClientMode.HttpGet);
var isHealthy = true;
try
{
   MetadataSet metadata = mexClient.GetMetadata();
}
catch (Exception ex)
{
    isHealthy = false;
} 

Другой вариант - добавить метод «heartbeat», который возвращает int или bool к самой службе, которую вы могли бы периодически вызывать из клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...