2

IIS に WCF サービスをデプロイしています。([AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] を使用した BasicHTTPBinding)

カスタムのメモリ内セッション管理を構築しましたが、IIS 7 が自動的に再起動するという奇妙な問題に直面しています。この問題により、利用可能なすべてのセッションが破壊されます。

ネットのログを使用してApplication_StartおよびApplication_Endメソッドをログに記録した後、この問題を発見しました。また、application_startにブレークポイントを配置し、テスト実行の間にそこで一時停止しました。

これはめったに起こりませんが、なぜそれが起こるのか、そしてそれが正常で許容できるものかどうかを知る必要があります. そうでない場合、これの考えられる理由は何ですか。

よろしく ムバシャール・アフマド

4

3 に答える 3

4

アプリプールが再循環されている可能性はありますか? IIS 6 では、これがデフォルトで 1740 分に設定されています。IIS 7に関しては、同じ種類の設定があると思いますか? IIS 6 では、この「イベント」が 'n エラーとして記録されないことを知っています。

于 2010-01-26T07:02:12.180 に答える
3

IISは、"異常な" プロセスを検出した場合、またはオペレーターが構成可能な特定の制限に達した場合に、ワーカー プロセスをリサイクルします。

制限には次のものがあります。

  • メモリしきい値
  • 構成された数のリクエストの後
  • 経過時間
  • 時刻

より詳しい情報

于 2010-01-26T08:09:27.803 に答える
0

セッション タイムアウト (アプリ プールのリサイクルとは別) は既定で 90 分に設定されており、これはアプリケーション レベルで設定されます。これは、セッションで開催されているものはすべて、その時点で吹き飛ばされることも意味します。IIS6 では仮想ディレクトリ/アプリケーションのプロパティを介して設定でき、IIS7 では SessionState->Open Feature を介して設定できます (アプリケーションが選択されている場合)。

また、Web サービスが ASP.Net アプリケーションのいずれかでホストされている場合、セッション タイムアウトは ASP.Net アプリケーションの web.config を介して設定できることにも注意してください。

于 2010-01-26T07:30:22.947 に答える