ASP.NET + C# HttpContext.Текущий.Сеанс равен null (внутри WebService)
вот как я инициирую сеанс
protected void Session_Start(object sender, EventArgs e)
{
HttpContext.Current.Session["CustomSessionId"] = Guid.NewGuid();
}
в моем решении под библиотекой классов я triyng для доступа к нему и получения нулевого исключения:
string sess = HttpContext.Current.Session["CustomSessionId"] ;
Это моя конфигурация в интернете.config и App.config (в моей библиотеке)
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
<system.web>
<pages enableSessionState = "true" />
<httpModules>
<add type="System.Web.SessionState.SessionStateModule" name="Session"/>
</httpModules>
<compilation debug="true" targetFramework="4.0" />
</system.web>
(app.config)
1 ответов
по Вашим комментариям кажется, что вы пытаетесь получить доступ к сессии в веб-службе. Веб-службы не имеют состояния, и именно так они и должны быть. Если вы хотите нарушить это правило и сделать их статусными, вы можете включить сеансы в классическом веб-сервисе ASMX следующим образом:
[WebMethod(EnableSession = true)]
public void SomeMethod()
{
... invoke the method in your class library that uses Session
}
Это, как говорится, используя HttpContext.Current
в библиотеке классов-это очень практика, что следует избегать любой ценой.