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

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

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

現象

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

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

注:

前のイベント メッセージで説明した.NET Frameworkのバージョンは、.NET Framework 1.0 のプレリリース バージョンです。

イベントの種類 : エラー
イベント ソース:ASP.NET 1.0.3306.0
イベント カテゴリ:None
イベント 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のバージョンは、.NET Framework 1.0 のプレリリース バージョンです。

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

原因

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

ただし、Web サーバーまたは状態サーバーの CPU 使用率が高い (100% に近い) 場合、TCP/IP 操作には 10 秒以上かかる可能性があるため、完了前に取り消されます。 その結果、上記のいずれかのイベントがログに記録され、元のクライアント要求は失敗します。 ASP.NET Web サーバー プロセスが TCP/IP 操作をタイムアウトした場合、状態サーバーはイベント ID 1072 をログに記録します。 状態サーバーが 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 秒ではなく、新しいタイムアウト値と等しくなります。