2017-12-04 9 views
0

クライアントサーバーアーキテクチャがあります。私はサーバーと4台のクライアントマシンを持っており、各クライアントにはSQL ServerがLANに接続されています。C#とASP.NET 4.0を使用してSQL Serverの可用性を確認する方法

4つのクライアントデータベースが接続されていることを確認する必要があります。私のASP.NETコードで

<connectionStrings> 
    <add name="DBConnection" 
     connectionString="Data Source=192.168.1.90,1433;Initial Catalog=POS;Integrated Security=False;User Id=sa;Password=sql2008;" 
     providerName="System.Data.SqlClient" /> 
    <add name="DBConnection1" 
     connectionString="Data Source=192.168.1.91,1433;Initial Catalog=POS;Integrated Security=False;User Id=sa;Password=sql2008;Connection Timeout=5" 
     providerName="System.Data.SqlClient" /> 
    <add name="DBConnection2" 
     connectionString="Data Source=192.168.1.92,1433;Initial Catalog=POS;Integrated Security=False;User Id=sa;Password=sql2008;Connection Timeout=5" 
     providerName="System.Data.SqlClient" /> 
    <add name="DBConnection3" 
     connectionString="Data Source=192.168.1.93,1433;Initial Catalog=POS;Integrated Security=False;User Id=sa;Password=sql2008;Connection Timeout=5" 
     providerName="System.Data.SqlClient" /> 
    <add name="DBConnection4" 
     connectionString="Data Source=192.168.1.94,1433;Initial Catalog=POS;Integrated Security=False;User Id=sa;Password=sql2008;Connection Timeout=5" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

私のweb.configファイルで

、私は私のウェブサービスではループ

<script type="text/javascript"> 
    function CheckDB() { 

     for (var i = 1; i <= 4); i++) { 
      var DBConnection = "DBConnection" + i; 
      $.ajax({ 
       type: 'POST', 
       url: 'StockIntegration.aspx/CheckDB', 
       data: "{DBConnection:" + JSON.stringify(DBConnection) + "}", 
       contentType: 'application/json; charset=utf-8', 
       dataType: 'json', 
       success: function (data) { 

        if (data.d == null || data.d == undefined) { 

        } else { 

         if (data.d == "1") { 
          $('[id$=Label1]').append("CONNECTED SYSTEM: " + DBConnection + "<br/>"); 
         } else { 
          $('[id$=Label2]').append("DISCONNECTED SYSTEM: " + DBConnection + "<br/>"); 
         } 
        } 
       }, 
       error: function() 
       { alert('there is some error'); } 
      }); 
     } 
    } 
</script> 

のための内側のAjaxメソッドを使用しています

[System.Web.Services.WebMethod] 
public static String CheckDB(String DBConnection) 
{ 
     try 
     { 
      SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[DBConnection].ConnectionString); 
      SqlCommand cmd = new SqlCommand("select 1", con); 
      con.Open(); 
      var rowCount = cmd.ExecuteScalar(); 
      con.Close(); 
      return rowCount.ToString(); 
     } 
     catch 
     { 
      return "Fasle"; 
     } 
} 

SQL Serverインスタンスのいずれかが切断されていると、ループは終了します。これを達成する方法は?接続されたSQL Serverインスタンスと接続されていないSQL Serverインスタンスの一覧を表示する必要があります。

答えて

0

ここにフロントエンドクライアントのJavaScriptコードがあります。しかし、それだけの成功部分:

success: function (data) { 
       if (data == null || !data) { 
         $('[id$=Label2]').append("DISCONNECTED SYSTEM: " + DBConnection + "<br/>"); 
       } else {     
         $('[id$=Label1]').append("CONNECTED SYSTEM: " + DBConnection + "<br/>"); 
       } 
      }, 

これはあなたのC#バックエンドコードです。

[System.Web.Services.WebMethod] 
public static bool CheckDB(String DBConnection) 
{ 
    try 
    { 
     using(var con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[DBConnection].ConnectionString); 
     { 
      con.Open(); 
      return true; 
     } 
    } 
    catch 
    { 
     return false; 
    } 
} 
関連する問題