3

ASP.NET Web アプリを提供するテスト Windows ホスト (50 MB) があり、ほとんど問題なく動作しましたが、100 MB にアップグレードした後、Visual から SQL サーバーにリモート接続しようとすると、SQL サーバーのタイムアウト エラーが頻繁に発生しました。 Studio (つまり、私のサイトのローカル開発) で、手動で SQL コマンドのタイムアウトを増やそうとしましたが、何とか解決したと思いますが、私のアクションは正しくないと思います。もちろん、私のサイトの閲覧者は、ページをすべてが最終ユーザーに対して正常に機能します。サイトを開発し、VS2010 を介してリモート データベースにアクセスしているときにのみ問題が発生しました。タイムアウトの増加を本当に検討する必要がありますか? タイムアウトをグローバルに増やすにはどうすればよいですか? SQL コマンドごとに commandtimeout プロパティを設定する必要がありますか? 接続文字列でそれを増やすことは可能ですか? もちろん私として」

タイムアウトのプロパティについてはよくわからないので、この問題について教えてください! ありがとう

4

1 に答える 1

7

これをグローバルに設定する簡単な方法はないと思います。たとえば、接続文字列などです。

あなたができること(しかしこれはあなたのコードがそのように機能することを必要とします)はあなたのコマンドタイムアウトを構成に入れます:

<configuration>
   <appSettings>
      <add name="CommandTimeout" value="120" />
   </appSettings>
</configuration>

次に、コードで、構成からその値を読み取り、SqlCommandクラスに使用します。

int commandTimeout = Convert.ToInt32(ConfigurationManager.AppSettings["CommandTimeout"]);

using(SqlCommand cmd = new SqlCommand(..(your SQL statement)..., connection))
{
    cmd.CommandTimeout = commandTimeout;
}

これにより、コードを変更せずに、少なくともタイムアウトを微調整できます。

于 2011-12-05T06:34:32.337 に答える