1

2 つのアプリケーションを異なるサーバーにデプロイしています。

1) セッション管理用の sessionState mode="SQLServer" を使用した ASP.net MVC 4 Web アプリケーション

2) セッション管理用の sessionState mode="SQLServer" を使用した Servicestack サービス アプリケーション (はい、サービス アプリケーションでセッションが必要です)

両方のアプリケーションがセッション管理のために同じデータベースとテーブルを共有します

次のソリューションを使用して、サービス スタック アプリケーションで asp.net セッションを使用しています。

asp.net MVC4 アプリケーションで Servicestack セッションに再接続する

私はサービススタックセッションを使用していないため、次の方法は利用できません。

ServiceStack サービス実装内で標準の ASP.NET セッション オブジェクトを使用するにはどうすればよいですか

ユーザーが mvc Web アプリケーションにログインすると、ユーザー データ用に mvc アプリケーションがサービス スタック アプリケーションからサービス メソッドを呼び出します。

using (var client = new JsonServiceClient(servicestackUrl))
                {

                    var response = client.Get<HttpWebResponse>(new GetFile
                    {
                        UserName = UserName,
                        EmployerID = EmployerID,
                        filename = fileName

                    });

                    //work on responce
                }

別のサーバーにデプロイされたServicestackアプリケーションのmvcアプリケーションで同じセッション変数を初期化する必要があります

セッション Cookie は、servicestack アプリケーションではなく mvc Web アプリケーションに設定されますが、セッションの詳細は、両方のアプリケーションにアクセス可能な SQL データベースに保存されます。

現在のセッションIDを取得してパラメータとしてサービスに送信できますが、セッションIDを使用してデータベースからセッションの詳細を取得するにはどうすればよいですか?.

アップデート :

セッションIDをアプリサーバーに送信する方法を見つけました

 var cookie = new Cookie("ASP.NET_SessionId", Session.SessionID);

 cookie.Domain = ".app.localhost";

 client.CookieContainer.Add(cookie);

SQLサーバーから上記を使用してserviceStackアプリケーションでセッションを取得するにはどうすればよいですか?

4

1 に答える 1