6

MVC、URL書き換え、カスタムHTTPモジュールなどを使用していません。System.Web.UI.Pageを継承するWebページまたはSystem.Web.HttpContext.Current.Sessionを介したSessionプロパティの基本的な呼び出しで、I次のエラーが発生します。

セッション状態は、構成ファイルまたはPageディレクティブのいずれかでenableSessionStateがtrueに設定されている場合にのみ使用できます。また、System.Web.SessionStateModuleまたはカスタムセッション状態モジュールが<configuration>\<system.web>\<httpModules>アプリケーション構成のセクションに含まれていることを確認してください。

調査を行った後、次のようにWeb.configを実装しましたが、それでもエラーが発生します。組み込みのWebサーバーを使用して、VisualStudio2010からWebアプリをデバッグしています。

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
        <sessionState mode="InProc" timeout="60" cookieless="false" />
        <pages enableSessionState="true" />
        <httpModules>
            <remove name="Session" />
            <add name="Session" type="System.Web.SessionState.SessionStateModule" />
        </httpModules>
    </system.web>
</configuration>
4

3 に答える 3

3

あなたの問題は簡単です。Session_Start グローバル イベントの後に実行される場所からコードを移動すると、この問題が非常に問題なく進行することがわかります。例として、Page_Init イベントにコードを記述するか、OnInit をオーバーライドして、そこでセッションでやりたいことを何でも行います。

これがうまくいくことを願っています。

于 2013-03-17T07:35:59.627 に答える
1

この問題のデバッグに多くの時間を費やしました。私たちのウェブサイトは昨日まで正常に機能していましたが、突然エラーで機能しなくなりました。

セッション状態は、構成ファイルまたは Page ディレクティブで enableSessionState が true に設定されている場合にのみ使用できます。System.Web.SessionStateModule またはカスタム セッション状態モジュールがアプリケーション構成の \\ セクションに含まれていることも確認してください。

オンにすると、サービス リストに ASP.net State Service がありません。

以下のように再インストールすると、問題の解決に役立ちました。

C:\Windows\Microsoft.Net\Framework64\v4.0.30319\aspnet_regiis -i

于 2013-06-28T20:03:59.743 に答える
0

この問題は、私の既知のシナリオで再現されています。

フレームセットまたは2つの並列リクエストがブラウザから発生している場合、これらの両方のページに同じカスタムベースページがある場合、セッションにアクセスすると、複数のワーカースレッドが原因でこの例外が発生しました...

更新:この問題のすべての患者に、私はここに私の発見があります!1. IEブラウザ(IE10)とFIREFOX(22)でこの問題を再現できましたが、ローカルコードですべての有効な設定などがありますが、[接続]タブ->[LAN]のIE設定で設定には、[ローカルホストにプロキシサーバーを使用する...]チェックボックスが[チェック済み]として表示されます-有効なプロキシサーバー設定なしで...

これをオフにすると、IEでは、デフォルトのセッション設定を持つ同じコードがHORSEのように実行されます。

それが光を与えることを願っています、

ありがとう

于 2013-03-15T16:02:39.310 に答える