1. ホーム
  2. asp.net

[解決済み] ASP.NETのセッションが期限切れ、または見つからなかった → Session.SessionIDが変更されたため(Reporting Services)

2022-02-09 08:33:02

質問

1.レポーティングサービスを使用していますが、時々このようなエラーが発生します。 ASP.NET session has expired or could not be found レポートを読み込もうとしたときに

2.・ユーザーが同じでもSession.SessionIDプロパティが変わるとこのエラーになることに気づきました。変更されなければ、レポートは読み込まれています。つまり、レポートを何度も更新すると、Session.SessionIDが前回と同じになるたびに、レポートがロードされるのです。

3.-マイクロソフトのドキュメントによると

クッキーベースのセッション状態を使用する場合、ASP.NETでは セッションオブジェクトが使用されるまで、セッションデータのためのストレージが使用されます。そのため その結果、新しいセッション ID がページリクエストごとに生成されます。 セッションオブジェクトにアクセスする。アプリケーションで静的な セッション全体のセッションIDを指定するために アプリケーションのGlobal.asaxファイルにSession_Startメソッドを記述し、その中に のデータをSessionオブジェクトに格納してセッションIDを固定するか、あるいは に明示的にデータを格納します。 オブジェクトを作成します。

アプリケーションでCookielessセッション状態を使用している場合 セッションIDは最初のページビューの際に生成され セッション全体

ポイントは、クッキーが必要なので、クッキーなしのセッション状態を使えないということです。

このエラーを回避するにはどうしたらよいでしょうか? または、リクエストごとにSession.SessionIDが変更されないようにするにはどうしたらよいでしょうか?

解決方法は?

おそらく、セッションをInProcessに保存しているのでしょう。これをセッションステートサーバーに変更してみてください。詳しくはこちら ここで .