Проблема Webapi и сеансов
Я пытаюсь добавить sessionstate к моему существующему asp.net применение. Я добавил
httpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required)
но каждый раз, когда я делаю вызов api, создается новый сеанс.
Вот как я пытаюсь просмотреть сеанс
var session = HttpContext.Current.Session; if (session != null) { if (session["TestSession"] == null) { session["TestSession"] = DateTime.Now; } return "TestSession: " + session["TestSession"]; } return ("No Session");
Просто интересно, если кто-то еще сталкивался с этой проблемой, я использую sqldatabase состояния сеанса для хранения сеанса
Что я уже пробовал:
я пробовал добавлять свойство HttpContext.Тока.SetSessionStateBehavior (SessionStateBehavior.Обязательно) до глобальных.эйсакс
а затем загрузка значения из сеанса
ZurdoDev
Установлен ли в вашем веб-методе флаг EnableSession?
[WebMethod(EnableSession = true)]
общественные строку сделать(строковое значение)
{
}
donnie_regan
Это мой контроллер webapi, я пытался установить enableSession в true здесь, но это не имело никакого значения.
публичный строковый индекс()
{
ВАР сессии = свойство HttpContext.Тока.Сессия;
if (session != null)
{
if (session ["TestSession"] = = null)
{
session ["TestSession"] = DateTime. Now;
}
возврат "TestSession:" + session ["TestSession"];
}
return ("нет сеанса");
}
ZurdoDev
Видишь http://stackoverflow.com/questions/9594229/accessing-session-using-asp-net-web-api
donnie_regan
Спасибо, что я попробовал это сделать, но он все еще создает новый сеанс каждый раз, он должен быть установлен в другом месте в существующем приложении, которое его вызывает.
Kornfeld Eliyahu Peter
Где в Global. asax находится эта линия?
donnie_regan
в методе Application_PostAuthorizeRequest()