21

プロジェクトは ASP.NET 2.0 です。これを自分で再現できたことは一度もありませんが、クライアントに週に何度も、多くの場合連続して数回発生することを通知する電子メールを受け取ります。

完全なエラーは次のとおりです。

例外の詳細:

Microsoft.Reporting.WebForms.AspNetSessionExpiredException: ASP.NET セッションの有効期限が切れました

スタックトレース:

[AspNetSessionExpiredException: ASP.NET セッションの有効期限が切れました] Microsoft.Reporting.WebForms.ReportDataOperation..ctor() で Microsoft.Reporting.WebForms.HttpHandler.GetHandler() で Microsoft.Reporting.WebForms.HttpHandler.ProcessRequest(HttpContext コンテキスト) でSystem.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() System.Web.HttpApplication.ExecuteStep で (IExecutionStep ステップ、ブール値 & completedSynchronously) セッション オブジェクト: 75de8e1d65ff40d1ba666d940af5b118: Microsoft.Reporting.WebForms.ReportHierarchy 5210064be1fa4d6abf5b2dd5e56 Reporting.WebForms.ReportHierarchy

4

7 に答える 7

14

同じ問題がありました。これまでのところ、セッションが期限切れになったときにしか見つかりませんでしたが、積極的なキャッシュを行うブラウザーで戻るボタンを使用しましたが、これは問題ありません。しかし、ReportViewer は、メイン ページがリフレッシュされなかったにもかかわらず、リフレッシュしようとしました。そのため、ハッキーな Global.asax エラー処理を追加しました。

protected void Application_Error(object sender, EventArgs e)
{
    Exception exc = Server.GetLastError().GetBaseException();
    if (exc is Microsoft.Reporting.WebForms.AspNetSessionExpiredException)
    {
        Server.ClearError();
        Response.Redirect(FormsAuthentication.LoginUrl + "?ReturnUrl=" + HttpUtility.UrlEncode(Request.Url.PathAndQuery), true);
    }
}
于 2008-10-07T14:48:43.850 に答える
3

Session Timeout

This can be due to your session timeout being too low. Check out the "sessionState" section of your Web.Config, e.g. :-

<system.web><sessionState mode="InProc" timeout="60" /></system.web>

Which would set a session timeout of 60 minutes.

Application Pool Recycle

Another possible cause, and one which we ran into, is that your application pool is being recycled for some reason.

In out case it was because we were hitting a "Maximum virtual memory" setting, I just upped that and everything has been fine since.

Have a look in your System Event Log for 1010, 1011, 1074, 1077, 1078, 1079, 1080 and 1117 events from W3SVC and see if your app pool is being recycled and if so, it should state why.

于 2008-10-27T15:10:03.233 に答える
2

これが私の修正でした。

WebファームでIISを実行していて、各ファームにはWebガーデンカウント=3があります。

SQLレポート専用に個別のアプリケーションプールを作成し、このレポートプール専用にWebガーデンカウント=1を設定しました。

次に、IISで仮想ディレクトリを作成し、レポート用に別のプロジェクトを作成しました-そのレポートプールを使用します

問題が解決しました。

于 2010-09-21T17:14:57.303 に答える
1

I had this problem when developing on my own PC and could not find an answer anywhere on the net. It turned out that one of my teammates added this to the web.config:

<httpCookies httpOnlyCookies="false" requireSSL="true" />

So the web.config on the developer’s desktop should not have the tag and the DEV/QAS and Prod web.config files should have it.

I also understand it is possible for developers to use IIS Express and then they could use SSL locally.

于 2012-10-09T11:17:22.793 に答える
0

web gardern count=1私のために働く

于 2012-03-08T09:47:53.823 に答える
0

Asp NET セッションはワーカー プロセスによって異なるため、アプリケーション プールの最大ワーカー プロセス数を確認します。

複数のワーカー プロセスインプロセス セッション状態がある場合、各プロセスには独自のセッションがあります。

セッション状態のタイプ

  1. インプロセス: セッション状態は、ASP.NET アプリケーションが実行されるワーカー プロセスに格納されます。
  2. 状態サーバー: セッション状態は、ASP.NET アプリケーションが実行されるワーカー プロセスの外部に格納されます。
  3. SQL Server: セッション状態は SQL Server データベースに格納されます。
于 2021-07-06T13:51:41.340 に答える
0

質問は何ですか?セッションの有効期限が切れたため、続行できません。

レポートの処理速度を確認します。ある種のベンチマークを構築するか、単にレポート処理を測定するよう依頼してください。

あなたにとってはうまくいっているかもしれませんが、彼らにとってはそうではありません (ネットワークが遅い、処理するデータが多い、DB サーバーが遅いなど)。

編集:これ 別の説明であり、おそらく問題の解決策ですが、プロセス環境でワーカープロセス番号を1に設定することはお勧めしません。

于 2008-10-07T14:13:40.363 に答える