Я пытаюсь обмениваться сеансами между двумя веб-приложениями, размещенными на одном сервере. Один из них - это приложение .net 2.0 для веб-форм, другое - как .net 3.5 MVC2.Совместное использование сеансов между приложениями с использованием службы состояния сеанса ASP.NET
Оба приложения имеют свои сессии настроить так:
<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
/>
В приложении WebForm я отправляю ключ сеанса в приложении 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
}
Я тогда делате его в MVC и попробуйте использовать один и тот же сеанс следующим образом:
[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"];
}
Ключ размещен, но сеанс, похоже, не загружается в приложение MVC, то есть sessionKey имеет значение NULL. Могу ли я пытаться сделать это?
Можете ли вы опубликовать код для отправки идентификатора сеанса другому приложению – kk1076
https://blogs.msdn.microsoft.com/toddca/2007/01/25/sharing-asp-net-session-state-across-applications/ – sotn
Ссылка в комментарии @sotn (https://blogs.msdn.microsoft.com/toddca/2007/01/25/sharing-asp-net-session-state-across-applications/) показывает, как вызвать сеанс SQL провайдер, чтобы вернуть один и тот же идентификатор приложения для всех приложений, чтобы они могли совместно использовать один и тот же сеанс. – AgapwIesu