マージレプリケーションを使用してローカルSQL Expressをネットワーク上の中央SQL Serverと同期させるwinformプログラムがあります。このアプリの性質上、同期プロセスはアプリの起動時と終了時に自動的に実行されます。私がそれをやっているところ(下)はかなり時間がかかるようです。何がより速い方法でしょうか?SQL Serverが使用可能かどうかを確認する最速の方法
サーバが利用可能だがSQLがダウンしているようなエッジケースには穴を開けることができますが、サーバ自体をチェックしても大丈夫でしょう。代わりに、多分私たちのドメインが利用可能かどうかをチェックすることは、私が推測する同じ穴を残す可能性があります。
ありがとうございます!追加の注意点としては
private static bool IsSqlAvailable()
{
try
{
var conn = new SqlConnection("Data Source=WWCSTAGE;Initial Catalog=Connect;Integrated Security=True");
conn.Open();
conn.Close();
HUD.IsSQLAvailable = true;
return true;
}
catch (Exception)
{
HUD.IsSQLAvailable = false;
return false;
}
}
。上記は、オフネットワークの場合に特に遅いです。私はConnection Timeout = 1を設定していて、かなりの時間この時点でまだ座っています。
接続タイムアウトを1秒に設定していて、まだ失敗するまでに時間がかかる場合は、接続試行が原因ではない可能性があります。それはDNSルックアップですか?接続タイムアウトに関する興味深い情報については、http://www.eggheadcafe.com/conversation.aspx?messageid=31241642&threadid=31241641を参照してください。 – Jacob