状態サーバーログ イベント ID 1072 またはイベント ID 1076

この記事では、状態サーバー上のログ イベント ID 1072 または 1076 の問題を解決するのに役立ちます。

元の製品バージョン:  Microsoft .NET Framework
元の KB 番号:   308097

現象

次のイベントの 1 つは、状態サーバー コンピューターでセッション状態の状態サーバー モードを使用する場合に、状態サーバー コンピューターのアプリケーション イベント ログに ASP.NET。 これは、Web サーバーまたは状態サーバーを実行しているコンピューターがストレスが高い場合に発生します。

イベントの種類 : エラー
イベント ソース:ASP.NET 1.0.3306.0
イベント カテゴリ:なし
イベント ID:1072
日付:2001/9/12
時刻:4:00:25 PM
ユーザー: N/A
コンピューター: ComputerName
説明:
状態サーバーでの要求の処理中にエラーが発生しました。 主要な呼び出し履歴: EndOfRequest。 エラー コード: 0x80072746

注意

前のイベント .NET Frameworkに記載されているバージョンは、1.0 のプレリリース バージョン.NET Frameworkです。

イベントの種類 : エラー
イベント ソース:ASP.NET 1.0.3306.0
イベント カテゴリ:なし
イベント ID:1076
日付:2001/9/12
時刻:4:02:05 PM
ユーザー: N/A
コンピューター: ComputerName
説明:
状態サーバーが期限切れの TCP/IP 接続を閉じた。 クライアントの IP アドレスは 127.0.0.1 です。 有効期限が切れた読み取り操作は、2001 年 9 月 12 日 16:02:00 に開始されました。

注意

前のイベント .NET Frameworkに記載されているバージョンは、1.0 のプレリリース バージョン.NET Frameworkです。

イベントの種類: エラー
イベント ソース: ASP.NET 1.1.4322.0
イベント カテゴリ: なし
イベント ID: 1078
日付: 2005/10/6
時刻: 11:03:47 AM
ユーザー: N/A
コンピューター: ComputerName
状態サーバーが期限切れの TCP/IP 接続を閉じた。 クライアントの IP アドレスは 127.0.0.1 です。 有効期限が切れた読み取り操作は、2005/10/06 11:03:25 に開始されました。

原因

ASP.NET でセッション状態の状態サーバー モードを使用する場合、Web サーバー内の ASP.NET Web サーバー プロセスは、WinSocket over 伝送制御プロトコル/インターネット プロトコル (TCP/IP) を使用して状態サーバーと通信します。 既定では、Web サーバー プロセスは、すべての送受信 TCP/IP 操作のタイム アウト値を 10 秒に設定します。 同様に、状態サーバーは、10 秒後に TCP/IP 操作の送受信をすべて行います。

ただし、Web サーバーまたは状態サーバーが CPU 使用率が高い (100% に近い) 場合、TCP/IP 操作には 10 秒以上かかる可能性があります。したがって、完了前に取り消されます。 その結果、上記のイベントの 1 つがログに記録され、元のクライアント要求が失敗します。 状態サーバーがイベント ID 1072 をログに記録 ASP.NET Web サーバー プロセスが TCP/IP 操作を使用し切った場合。 状態サーバーが TCP/IP 操作を使い切った場合、状態サーバーはイベント ID 1076 を記録します。

解決方法

ASP.NET Web サーバー プロセスの TCP/IP 操作のタイム アウト値を変更するには 、Machine.config ファイルで次の属性を変更します (または、任意の Web アプリケーションのWeb.configファイルで次の属性 指定します)。

 <sessionState
    stateNetworkTimeout="10"
 />

状態サーバーの TCP/IP 操作のタイム アウト値を変更する方法を次に示します。

  1. 状態サーバー サービス ASP.NET 停止します。
  2. [ スタート] を選択し 、[実行] を選択 し、「Regedt32.exe」 と入力し 、[OK] を選択してレジストリ エディターを起動します。
  3. レジストリで次のキーを探します。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameter
  4. SocketTimeout という名前の DWORD 値を追加します。 新しい TCP/IP タイムアウトを秒単位で表す正の整数を設定します。
  5. レジストリ エディターを終了します。
  6. 状態サーバー サービス ASP.NET 再起動します。

[現象] セクションに記載されている問題が発生したユーザーの場合は、次のメソッドを使用して、状態サーバーとすべての Web サーバーのタイム アウト値を 20 秒に増やします。

注意

Web サーバーでタイムアウト値を増やした場合、状態サーバーが実行されていない場合、クライアント要求は n 秒後にタイムアウトし、nは既定の 10 秒ではなく、新しいタイムアウト値と等しくなります。