1

私はレガシー プロジェクト (ただし C#) に取り組んでおり、何年にもわたって発見されてきたセッションの問題を解決しようとしています。IE8 以前のバージョンで発生します。IE9 では、Google Chrome、Firefox、および Safari が正常に動作します。

つまり、すべてのブラウザで正常に動作する管理ソフトウェアがあります。しかし、大量の Ajax リクエストを行う特定のページがあり、ある時点でセッション データが失われます。

Fiddle で Cookie の問題を確認しましたが、常に送信され、同じです。

これらの手がかりは、問題がアプリケーション内にあると考えさせます。しかし、問題が IE8 以前のバージョンでのみ発生することを覚えている場合、問題はおそらくブラウザーにあると考えられます。

また、従来の Ajax ライブラリも使用しています。そして、私たちのアプリケーションの多くがそれを使用しており、同じ問題を抱えていないため、問題はそこにあってはなりません.

  • State Server で IIS7 を使用しています

私はほとんどアイデアがありません。私はあなたがいくつか持っていることを願っています.

4

2 に答える 2

0

セッション状態が失われるのは、アプリケーションエラーが原因である可能性があります。しかし、これがIE8以前のバージョンでのみ発生すると主張する場合、これは当てはまらない可能性があります...したがって、セッション状態の代わりにページViewStateを使用することをお勧めします。トリックがあなたのためにあったかどうか私に知らせてください?

ページのビューステートに基づいてプロパティを作成する方法の例を次に示します。ページレベルでビューステートが有効になっていることを確認してください。

    public string MyProperty
    {
        get
        {
            return ViewState["MyProperty"] as string;
        }
        set
        {
            ViewState["MyProperty"] = value;
        }
    }
于 2012-08-21T20:27:22.157 に答える
0

わかった!

Fiddler を使用して、"/" に対する非常に疑わしい要求を見つけました。サイトのベース URL を要求するものがありました。そして、この特定の Web アプリケーションのデフォルト ページがセッション データを強制終了することを思い出しました。つまり、ログイン ページを呼び出すことは、ユーザーをログオフすることにもなります。

数時間のデバッグとスニッフィングの後、そのような要求を行っているものを見つけました。

いくつかのイメージ タグを作成する JavaScript 関数があります。これらのタグが空のアドレスで作成された場合があります。つまり、img タグの src プロパティが長さ 0 の文字列でした。

何も要求しないのではなく、Web サイトのルートを要求するため、 IE8 以前のバージョンのバグである必要があります。バグではないかもしれませんが、この動作は確かに予期しないものです。

ふぅ!見つけたことが今でも信じられません。

于 2012-08-23T00:00:38.393 に答える