Tôi đang cố gắng chia sẻ phiên giữa hai ứng dụng web, cả hai được lưu trữ trên cùng một máy chủ. Một là một ứng dụng web 2.0 hình thức ứng dụng khác là như .net 3.5 MVC2 ứng dụng.Chia sẻ phiên trên các ứng dụng bằng ASP.NET Session State Service
Cả hai ứng dụng này đã phiên của họ thiết lập như thế này:
<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
/>
Trong ứng dụng Webform Tôi gửi bài session key để ứng dụng MVC:
protected void LinkButton1_Click(object sender, EventArgs e)
{
Session["myvariable"] = "dan";
string sessionKey = HttpContext.Current.Session.SessionID;
//Followed by some code that posts sessionKey to the other application
}
sau đó tôi nhận được nó trong Ứng dụng MVC và thử sử dụng cùng một phiên như sau:
[HttpPost]
public void Recieve(string sessionKey)
{
var manager = new SessionIDManager();
bool redirected;
bool IsAdded;
manager.SaveSessionID(HttpContext.ApplicationInstance.Context, Id, out redirected, out IsAdded);
var myVar = Session["myvariable"];
}
Chìa khóa đang được đăng nhưng phiên dường như không được tải trong ứng dụng MVC, tức là sessionKey là null. Tôi có thể cố gắng làm gì không?
Bạn có thể đăng mã để đăng id phiên cho ứng dụng khác – kk1076
https://blogs.msdn.microsoft.com/toddca/2007/01/25/sharing-asp-net-session-state-across-applications/ – sotn
Liên kết trong nhận xét @sotn (https://blogs.msdn.microsoft.com/toddca/2007/01/25/sharing-asp-net-session-state-across-applications/) cho biết cách gây ra phiên SQL nhà cung cấp trả lại cùng một id ứng dụng cho tất cả các ứng dụng, để họ chia sẻ cùng một phiên một cách hiệu quả – AgapwIesu