Я создал 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
}