1

私は取得しようとしてSession["user"]いますが、Page_Loadこのクラッシュが発生し続けます:

「セッション」は、タイプ system.web.httpexception の例外をスローしました

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

これが私のweb.configです

<configuration>
<system.web>
<pages enableSessionState="true" />        
    <httpModules>
      <add name="Session" type="System.Web.SessionState.SessionStateModule" />
    </httpModules>
</system.web>
</configuration>

構成タグ内には他のものがありますが、重要な部分はこれです。構成は正しいのですが、エラーはまだ同じです。

なぜこうなった?

.aspx では大したことはありません

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        if (Session["user"] == null)
            Response.Redirect("~/Login.aspx");
    }
}
4

7 に答える 7

3

同様の問題が発生し、すべての場所のThat Hyphenated Web サイトで解決策を見つけました。私のコード:

    void Application_Error(object sender, EventArgs e )
    {
        Exception ex = Server.GetLastError();
        if ( ex != null )
        {
            if ( ex.GetBaseException() != null )
            {
                ex = ex.GetBaseException();
            }

            if ( Session != null )  // Exception occurred here.
            {
                Session[ "LastException" ] = ex;
            }

            Toolbox.Log( LogLevel.Error, "An Application Error Occurred", ex );
        }
    }

...そして、示された行を次のように変更します。

            if ( HttpContext.Current.Session != null )

コードは期待どおりに動作するようになりました。警告 Emptor: ハイフンでつながれた Web サイトへのリンクは、このページでの動作と、Google の結果のページからクエリへの動作とは異なります

'session' threw an exception of type 'system.web.httpexception'
于 2014-12-26T19:54:12.627 に答える
0

web.configにSeesionstateタグがありましたか?このタグを追加してみてください。

サンプル:

        <sessionState mode="Off|InProc|StateServer|SQLServer"
          cookieless="true|false"
          timeout="number of minutes"
          stateConnectionString="tcpip=server:port"
          sqlConnectionString="sql connection string"
          stateNetworkTimeout="number of seconds"/>

詳細については、http://msdn.microsoft.com/en-us/library/ms178586.aspxをご覧ください。

于 2013-01-30T19:09:44.707 に答える
0

win2008 と IIS を使用している場合、セッション状態がデフォルトで有効になっていない可能性があります。Session State Mode SettingsIIS で が有効になっていることを確認できますか?

ここにあなたが探しているものの写真があります:

ここに画像の説明を入力

右クリックして選択Open Featureし、 に設定されていることを確認しenabledます。

于 2013-01-30T19:12:27.517 に答える
0

「ASP.NET State Service」の開始と停止は、同様の状況で私を助けてくれました。

于 2015-10-02T09:18:05.740 に答える