問題タブ [state-server]
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.
asp.net - セッション状態の管理
データベースでセッション状態を維持する必要があります。ただし、Web サーバーからデータベースに直接アクセスすることはできません。Web サーバーは、データベースにアクセスできるアプリケーション サーバーと通信します。
これを設定する方法はありますか?または、カスタム コンポーネントを作成する必要がありますか。
このセットアップの理由は、負荷分散を可能にし、ユーザーのセッションをあるサーバーから別のサーバーにリダイレクトできるようにするためです。
.net - .NET 3.0 から 3.5 へのアップグレード: Web ガーデンで StateServer に設定されたサイトが InProc に戻る
シナリオ:
.NET 3.0 を実行しているサーバーと、Web ガーデンが有効になっているアプリケーション プールで実行されている ASP.NET Web サイトを取り上げます (プロセスの数: 3)。web.config 構成は次のとおりです。
マシンを .NET 3.5 SP1 にアップグレードします。サーバーを再起動します。結果: すべてのインスタンスが InProc に戻ったかのように、w3wp.exe のインスタンス間でセッションが維持されなくなります。現在の回避策は、ワーカー プロセスを 1 つに減らすことです。
奇妙なことに、別のサーバーで同じコードを実行しても問題は発生しません。以前にこの問題を経験したことがありますが、再起動すると魔法のように消えました。すでに一度再起動しましたが、今のところ喜びはありません。
2 つのサーバーの 2 つの machine.config と web.config を比較すると、同一です。
他の誰かがこの問題を経験していますが、そこには答えがありません。
何か案は?私は本当にこれに困惑しています。
.net - 2 つの .net アプリケーション間で「セッション状態」タイプのデータを共有する最良の方法
小さなものから始めたWebアプリケーションがあり、追加された新機能はすべて同じプロジェクトの一部として作成されましたが、これらのアドオン用の新しいプロジェクトを作成したいと思います...
新しいプロジェクトを作成し、メイン プロジェクトの global.asax を継承し、メイン プロジェクトの web.config にも問題なくアクセスしますが、グローバル asax コードでは、データの整合性をチェックするセッションがあり、ユーザーがログインしています..ここで問題が発生しています..ユーザーはログインしていますが、メインプロジェクトによって設定されたセッションユーザー ID にアドオンプロジェクトがアクセスできないため、ユーザーがログインしていないことを示すサイトエラーが発生します。
現在、セッション状態サーバーまたは SQL 状態サーバーを使用していません。一部の古いコードの頭痛の種を避けるために、使用を避けたいと考えています。
また、ミューテックスのルートに行きたくありません..可能であれば、Windowsコーディングからも離れたいです...
セッションで何が起こるかのサイトの概要: ユーザーが asp コード (.net 1.1 コード) でログイン ユーザーが認証され、正常にログインし、そのユーザーの GUID をデータベースに送信し、メイン プロジェクト (.net 2.0 コード) がそれを取得しますguid は、ユーザー データを取得し、ユーザー ID をセッションに保存します。ユーザーが誰であるかを知る必要があるページは、セッションから取得します("userid")
そのため、global.asax を継承する別のプロジェクトを作成し、web.config にアクセスできます - 完了!
これに加えてやりたいこと: この新しいプロジェクトにページ (メイン プロジェクトのアドオン機能) を含め、このページにメイン プロジェクトから設定されたセッション ("userid") にアクセスさせます。- これを行う方法がわからない...
asp.net - ASP.NETWebサイトで状態サーバーを使用するときに単一障害点を回避する方法
私の現在のプロジェクトでは、サーバーファームを要求するのに十分な負荷がかかる可能性が高いWebサイト(ASP.NET MVC)を作成する必要があります。サーバーファームを使用する場合は、セッション状態をSQLサーバーデータベースや状態サーバーなどの別の場所に保存する必要があることを理解しています。
いくつかの実験の後、私たちは状態サーバーメカニズムを使用する傾向がありますが、単一障害点があるという事実は私を緊張させます。ステートサーバーを使用するときに「単一障害点」を回避できる方法はありますか?
asp.net - W3WP (IIS) プロセスのリサイクル時に ASP.NET InProc セッションを保持する
w3wp メモリにのみ存在するため、w3wp 所有者プロセスがリサイクルされると、すべての InProc セッション データが常に失われることを理解しています。
リサイクルがプロセスの外部で発生したときにセッションデータをキャッシュし、セッションが戻ってきたときにセッションを再注入(および再構築)できるかどうか疑問に思いました。そうすれば、必要に応じて状態サーバーのような外部化の信頼性を備えた InProc の速度を得ることができます。これは可能ですか?
asp.net-mvc - ASP.Net State Serverは洗練されたソリューションですか?
ASP.Net MVCプロジェクトがあります。このプロジェクトは、単一のWebサーバーから始まりますが、まもなく小さなWebファームに拡張される可能性があります。ASP.Net認証はUserIDを格納し、データキャッシュも役立つ可能性があるため、かなり早く状態サーバーにジャンプする必要があります。
State Serverがどのように機能し、パフォーマンスの観点からどのように拡張できるかを他の人から聞いてみたいと思います。
または、暗号化されたCookieを使用してデータのキャッシュと追跡セッションを使用しないことで、完全にステートレスとして設計することもできます。
更新:以前に(Microsoftテクニカルアドバイザーから...)いくつかの誤った情報がありました。Authは思ったようにセッションに保存されず、Cookieに保存されるだけです。したがって、結局、この状況では状態サーバーは必要ありません。
c# - XmlDocument プロパティを使用してオブジェクトをシリアル化する
type のいくつかのフィールドとプロパティを含む多くのクラスが必要XmlDocument
です。これらのクラスのオブジェクト (状態サーバー、SQL 状態サーバーなど) をセッションに配置するときは、それらをシリアル化する必要があります。しかし、タイプ XmlDocument のプロパティがあり [Serialize]
、クラスの上に Attribute を追加すると、次のエラーが表示されます。
セッション状態をシリアル化できません。'StateServer' および 'SQLServer' モードでは、ASP.NET はセッション状態オブジェクトをシリアル化するため、シリアル化できないオブジェクトまたは MarshalByRef オブジェクトは許可されません。「カスタム」モードのカスタム セッション状態ストアによって同様のシリアル化が行われる場合、同じ制限が適用されます。
[NonSerialize]
フィールドが属性を持っている場合、このエラーは表示されません。[NonSerialize]
クラスと構造体とイベントとデリゲートにのみ使用できるため、プロパティに属性を含めることはできません。