問題タブ [stateserver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
session - xmlDocument オブジェクトを Session に保存できますか?シリアライゼーションを行うにはどうすればよいですか?
セッション内に保存したいXMLドキュメントが1つあるため、ポストバックごとに物理パスから再度ロードする必要はありません。ステートサーバーを使用しています。
セッションに保存しようとすると、エラーが発生します。
例外の詳細: System.Runtime.Serialization.SerializationException: Type 'System.Xml.XmlDocument' in Assembly 'System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' はシリアル化可能としてマークされていません。
私のコードは次のようなものです:
string resumeSection = string.Empty;
シリアライゼーションを行うには?
エラーの下にある ため、セッション状態をシリアル化できません。'StateServer' および 'SQLServer' モードでは、ASP.NET はセッション状態オブジェクトをシリアル化するため、シリアル化できないオブジェクトまたは MarshalByRef オブジェクトは許可されません。「カスタム」モードのカスタム セッション状態ストアによって同様のシリアル化が行われる場合、同じ制限が適用されます。
c# - State Server の使用時にブラウザを閉じた後にセッションが期限切れになる
非常に簡単な質問があります。アプリケーションにセッションを格納するためにステート サーバーを使用しています。問題は、自分のサイトにアクセスしてサイトにログインした後、ログイン後にブラウザを閉じて再度開くと、セッションが失われることです。もう一度ログインする必要があります。ブラウザを閉じた後でもセッションを有効にするために最低限必要なことは何ですか。
私の状態サーバーの構成は以下のとおりです
そして、sesion_startのglobel.aspxファイルでこれを行っています
ブラウザを閉じた後でもセッションを有効にするために最低限必要なことは何ですか。

ここにサーバー上の私の設定の画像があります
asp.net - StateServer サービス使用時のセッション データのクエリ
.NET 4.0 Web アプリで StateServer サービスを使用しているときに、すべてのアクティブなセッションにわたってクエリを実行する方法を知っている人はいますか?
私のシナリオでは、ユーザーがパートナー サイトの 1 つに移動したときにセッション データを設定しています。パートナー サイトは定期的に当サイトのサービスを呼び出し、セッションがまだアクティブであるかどうかを確認し、その他のデータを返します。
List all active ASP.NET Sessionsで説明されているソリューションを使用して、最初に InProc セッションを使用していたときに、なんとか機能させることができましたが、StateServer サービスの使用に切り替えたとき、これらの手法は機能せず、セッションを照会できません。 .
何か案は?
どうもありがとう
asp.net-mvc-3 - MVCCRGパターンがSessionStateと競合しています
私はMVC3Webアプリを持っています。その中で私はPRG(Post-Redirect-Get)パターンを使用してきました。これは、モデルの検証が失敗した場合のポストバック中に、ViewDataをTempDataに永続化してから、元のGETアクションにリダイレクトします。
アクション後-
後のGETアクション-
これはほとんど通常の方法です。これまで、すべてが正常に機能しています。ここで、セッションの永続性を改善する必要があります。つまり、「より長い」セッションが必要です。ASP.NetStateServerを使用すると結論付けました。
セッションをStateServerに移行した後-
カスタムオブジェクトを保存している一部のセッションで「シリアル化できません」というエラーが発生し始めました。問題を整理するようなオブジェクト[Serializable]を作成しました。しかし今、私は上記のPRGパターンで立ち往生しています!
エラー-アセンブリ'System.Web.Mvc、Version = 3.0.0.0、Culture = neutral、PublicKeyToken=31bf3856ad364e35'に「System.Web.Mvc.ViewDataDictionary」と入力してもシリアル化可能としてマークされていません。
奇妙なことに、私のシナリオを共有する単一のスレッドを見つけることができません。誰?
c# - セッション モード「ServerState」がスレッド内のセッションを適切に処理しない
スレッド内のセッション状態に値を追加するいくつかの作業を実装しました。これらの値をスレッドの外で利用できるようにしたいと思います (明らかに)。
セッションに追加された情報は、セッション状態モードが「InProc」の場合、問題なくセッションの外で利用できます。
ただし、Session State モードが「StateServer」の場合は、動作が異なります。基本的に、スレッド内に設定された値は永続化される場合と永続化されない場合があります。私にはランダムに思えます。
問題を再現するコードを次に示します。
上記のコードは、SessionState mode="InProc" で問題なく動作しますが、次の場合はランダムです。
何か案は?
編集: したがって、以下のコメントに従って、リクエスト (メインスレッド) が終了する前にスレッドを終了する必要があります。そうしないと、セッションに追加されたものはすべて失われます。これは、メイン スレッドの最後でセッションがシリアル化され、データ ストア (アウト オブ プロセス、または SQL Server) に送信されるためです。
asp.net - ASP.NET Web ファームで Stateserver セッションを使用する
Web ファームに展開されるオンライン ショッピング Web サイトを作成しました。この結果、ASP.NET が提供する Stateserver Session Management を使用することにしました。これで、ログインページができました。ユーザーが正常にログインした後、カタログ ページにリダイレクトし、その後ショッピング カートに書籍を追加できるようにします。
私が理解したことから、セッションはキーと値のペアの形式で保存されます。したがって、特定のユーザー (たとえば、彼の名前は「abc」) のセッションを作成する場合は、次のようにします。
彼が別のページにリダイレクトされた後、このセッションを取得するにはどうすればよいですか? 私が読んだことから、私は書かなければならないでしょう:
このユーザー名をパラメーターとして別のページに送信するにはどうすればよいですか。これは Web ファーム上にあるため、クライアントは要求ごとに異なるサーバーに接続でき、複数のクライアントが同時にログインする可能性があります。したがって、それぞれのユーザー名をキーとしてすべてのセッションを作成すると、別のページを閲覧しているときにセッションを取得するにはどうすればよいでしょうか?
私はセッション ID の正確な働きを理解していないと思うので、誰かが私を助けてくれれば素晴らしいことです。
c# - stateserver htmltable セッションのシリアル化の問題
セッションにasp.net htmlテーブルを保存し、その作業ファイルをInProcセッション状態にします。
stateserver を使用している間、セッションからテーブル オブジェクトを取得するシリアライゼーションに問題があります。
私はそれを成し遂げることができないベロコードで試しました...
も参照して ください
asp.net - 負荷分散された環境で ASP.net State Server がセッションを失う
これはよくある質問であることは承知していますが、私の質問に答えるものをまだ見つけていません。負荷分散された環境でセッション データがランダムに失われます。私は次のことをしました:
- すべてのサーバーを同じ状態サーバーに設定します
- web.config 内のすべての machineKeys が同じであることを確認
- machine.config 内のすべての machineKeys が同じであることを確認
- Web サービス ファイルへのすべてのパスが同じであることを確認 (大文字と小文字を区別)
- すべてのサービスが同じ ID を持っていることを確認しました
セッションは、複数の Web サーバーで持続しません。以下は、web.config セッション情報です。
何か案は?私はそれらから外れています。ありがとう!
asp.net - セッション状態サーバーにセッション状態要求を行うことができませんか?
State Server セッションを使用しようとしています。
セッション状態を次のように変更しました。
ローカル ホストから Web サイトを実行すると、すべて正常に動作します。
しかし、ウェブサイトを公開してオンラインで実行しようとすると、次のエラーが発生します。
セッション状態サーバーにセッション状態要求を行うことができません。ASP.NET State サービスが開始されていること、およびクライアントとサーバーのポートが同じであることを確認してください。サーバーがリモート マシン上にある場合は、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection の値を確認して、サーバーがリモート リクエストを受け入れることを確認してください。サーバーがローカル マシン上にあり、前述のレジストリ値が存在しないか 0 に設定されている場合、状態サーバー接続文字列はサーバー名として「localhost」または「127.0.0.1」を使用する必要があります。
Web サイトは Afrihost サーバーでホストされています。エラーを調査したところ、ASP.NET State サービスが開始されていないことが原因であることがわかりました。Afrihost サーバーがこのサービスを実行しているかどうか、またはリモートで開始するかどうかを確認する方法はありますか?
また、IPアドレス127.0.0.1がローカルホスト用であることはわかっていますが、アプリケーションをWebサーバーに公開しているため、そのマシンに対してローカルになります。これは正しいです。