私は、ユーザーが開いている形式を記録する約200台のマシンで簡単なプログラムを持っています。フォームが開かれるたびにSQL接続が開き、行が挿入され、接続が閉じられていると思いますか?私は接続プーリングがデフォルトでオンになっているので、実際には閉じていないと思いますか?私はWebサービスや潜在的なより良い方法を呼び出すことはできませんので、私の質問はなぜこのエラーであり、それを修正する方法があるのでしょうか?またはSQLの終わりに何か?多分私は変更しようとすることができます設定?多くのクライアントがテーブルに書き込もうとするとSQL Serverエラーが発生するのはなぜですか?
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
using (SqlCommand command = new SqlCommand(
"INSERT INTO LoggerLoanForm VALUES(@Session, @Form, @DateStamp, @LoanNumber)", connection))
{
command.Parameters.Add(new SqlParameter("Session", llf.SesssionId));
command.Parameters.Add(new SqlParameter("Form", llf.Form));
command.Parameters.Add(new SqlParameter("DateStamp", llf.DateStamp));
command.Parameters.Add(new SqlParameter("LoanNumber", llf.LoanNumber));
command.ExecuteNonQuery();
}
}
catch (Exception ex)
{
AppInsightHelper.TrackException(ex);
}
}
SQL Serverへの接続を確立する際に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認します。 (プロバイダー:TCPプロバイダー、エラー:0 - 要求された名前は有効ですが、要求されたタイプのデータが見つかりませんでした。)要求された名前は有効ですが、要求されたタイプのデータは見つかりませんでした
ピーク時にはより多くのことが起こるので、SQLサーバーに十分なオープン接続や何かがないと思いますか?
あなたはアプリのコードで接続プロパティを使用している - それは完了だとき 'using'ブロックは接続を閉じます。私は_server_側で[より多くの同時接続を許可する](http://stackoverflow.com/questions/1499718)に変更する必要があるか、または別の同時実行モデルを使用すると思われます。より深いネットワークの問題もあるかもしれませんが、実際に安いスイッチやルータがなければ、おそらく200人のユーザーしかいないようです。 –
Googleの場合 - SQL Serverへの接続を断続的に確立する際にネットワーク関連またはインスタンス固有のエラーが発生しました - この問題を抱えている他のQが表示され、ネットワークのオーバーロードやファイアウォールなどについて多くの人が言いました – Cato
それはSQLサーバーではなくネットワークです。接続が不足している場合、通常は接続がなくなったというメッセージが表示されます - 間欠的であると推測しています - エラーが発生してから100ms後にスリープした後、何度も何度も - それは助けてくれるでしょう – Cato