2009-04-29 16 views
3

私はASP.NET WebSiteを1日に1〜2時間ごとに再起動してセッションや他のことがなくなり、ユーザーがページを開いて何かをしているので、 20分間の間、彼らはそれを提出すると、素晴らしい "私たちは申し訳ありません"ページがあります。ASP.NETアプリケーションがあまりにも多く再起動する

私はアプリケーションを再起動する(web.configを変更する、ファイルを変更する、または通常は再起動を引き起こしてはいけないApp_Data内のフォルダを削除するなどのバグのあるものも)何もしません。

サーバーのハードウェアに関連付けることはできますか?それほど強力ではありません。

+1

私はセッションをInProcからStateServerに移動しました。それでもはや問題はありません。また、アプリケーションのメモリ使用量の一部を調整しました。私はマネージコードを書いているのでリソースについてあまり気にするのに慣れていませんが、今から気をつけます。 –

答えて

2

Check this blog post appdomainのリサイクルに関するいくつかの原因が考えられます。考えられる原因はたくさんあります。

問題を解決できない場合は、インプロセスセッション状態からセッション状態サーバーへの切り替え、またはセッション状態のデータベースへの保存に切り替えることができます。両方のオプションは設定が簡単で、かなりうまく動作しますが、パフォーマンスに影響があります(10〜20%の間)。 There is a nice article hereセッション状態サーバーの設定方法について

0

イベントログに再起動の原因が記録されていますか?

1

サーバーが小さいと言われているので、ワーカープロセスがprocessModel in machine.configで設定したメモリを消費しているかどうかを確認することができます。それはリセットを引き起こす可能性があります。

0

サーバー上で実行中のウイルス対策ソフトウェアがありますか。 web.configを変更するとアプリケーションがafaikを再起動するため、web.configを通過するウイルス対策ソフトウェアが、ファイルをリセットする可能性のある属性を変更することがあります。

AVソフトウェアを無効にするか、WebアプリケーションディレクトリをAV自動スキャンから除外してみてください。

3

IISのアプリケーションプールは、タイムアウト後または "n"ヒット後に、デフォルトでリサイクルされます。

通常の処理の一部です(ただし、アプリケーションプール設定で無効にすることもできますが、IIS6 | IIS7)。

これがあなたのアプリを壊すという事実は、あなたがメモリ内セッションのようなものをたくさん使っていることを示唆しています。これらをデータベースベースの実装に移すことを検討してください。アプリケーションプールの再起動とサーバーの再起動の両方を考慮することとは別に、サイトを複数のサーバーに拡張することができます。

1

ASP.NETアプリケーションが実際に再起動してもよろしいですか?それとも、失われたセッションなどのために起こったと思いますか?

アプリケーションの(およびIIS)セッションタイムアウト変数は何ですか?タイムアウトのデフォルト値は20分なので、私はそれを求めています。 Webでタイムアウトを設定できます。configを次のように設定します。

<system.web> 
    <sessionState timeout="120"/> 
</system.web> 

ただし、それ以外にも、IIS自体の中に設定できる場所もあります。 IIS6の場合、それらの場所は以下のとおりです。仮想ディレクトリの

  • プロパティ]> [ホームディレクトリ(タブ)> [設定(ボタン)>オプション(タブ)> [セッションタイムアウトの仮想ディレクトリ> ASPの
  • プロパティ。ネット(タブ)>認証(タブ)> Cookieタイムアウト

実際に両方が必要かどうかはわかりませんが、通常は両方ともweb.configで設定したのと同じ値に設定します。

関連する問題