Потребление услуг, которые потребляют другие услуги - PullRequest
2 голосов
/ 28 мая 2009

Каков наилучший способ подтвердить, что эти потребленные сервисы действительно запущены и работают, прежде чем я действительно попытаюсь вызвать его контракты на эксплуатацию? Я хочу сделать это так, чтобы я мог изящно отобразить какое-то сообщение клиенту, чтобы дать ему / ей более приятный пользовательский опыт. Спасибо.

Ответы [ 2 ]

2 голосов
/ 28 мая 2009

Я создал IsAvailable метод, который проверил все мои базовые зависимости для моего сервиса. Мой клиент будет вызывать этот метод, прежде чем делать что-либо еще с моим сервисом. Если он вернул true, мой сервис был доступен для использования.

Мы также установили промежуточные проверки для отката любых изменений, если одна из базовых зависимостей не была в состоянии во время транзакции.

Пример:

Вот простой пример того, как мой IsAvailable используется клиентом:

IsAvailable код

[WebMethod]
public bool IsAvailable()
{
    bool EverythingUpAndRunning = true;

    try
    {
        string TestConnectionString = WebConfigurationManager.ConnectionStrings["Sql"].ConnectionString;
        SqlConnection sqlConnection = new SqlConnection(TestConnectionString);
        sqlConnection.Open();
        sqlConnection.Close();
        sqlConnection.Dispose();
    }
    catch(Exception ex)
    {
        EverythingUpAndRunning = false;
    }

    return EverythingUpAndRunning;
}

Код клиента:

MyWebService proxy = new MyWebService();
if(proxy.IsAvailable)
{
    //if true, you can use the other available methods in the service
}
1 голос
/ 28 мая 2009

Я бы не считал себя частью Сообщества SO, но я уже сталкивался с такой ситуацией, и это была простая обработка исключений вокруг вызовов службы. Если вы контролируете сервисы, вы можете создать метод статуса, который возвращает его текущее состояние. Если сеть не работает и вы даже не можете подключиться к службе, вам придется справиться с этим с некоторой обработкой исключений, но вы можете получить статус обратно, если родительская служба не может использовать свои дочерние службы.

Если вы следуете ТАК, то, по моему собственному мнению, вам не следует беспокоиться о потребляемых услугах, потребляющих другие услуги.

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