Мое веб-приложение ASP.NET отлично работает в Internet Explorer, но в Firefox и Chrome у меня есть проблема, когда определено значение HttpContext.Current
, но HttpContext.Current.Session
равно null. Вероятно, ошибка вызвана тем фактом, что объект Session обращается к раннему жизненному циклу страницы ASP.NET. Но так как веб-сайт действительно будет доступен через Internet Explorer, я надеюсь найти быстрое и приемлемое решение. Возможно, что-то вдоль этих линий:Могу ли я создать HttpContext.Current.Session программно, если он равен нулю?
if (HttpContext.Current.Session == null)
{
// Create Session - but how?
}
Так что вопрос: Могу ли я создать объект Session программно в ASP.NET?
Редактировать: Ошибка была связана с файлом .designer, который был не синхронизирован. Странно, но теперь это работает.
Спасибо. Думаю, мне придется копать глубже, чтобы решить эту проблему. Это довольно непротиворечиво, и мне только что сказали, что это, вероятно, происходит только при использовании внутреннего веб-сервера Visual Studio, что делает его недействительным на производственном сервере. –
В контексте самого веб-приложения вы не можете создать контекст/сеанс, но есть способы сделать это, если вам это нужно для модульного тестирования. Они уродливы, и я, если возможно, издевался над HttpContextBase/HttpSessionStateBase. Просто подумал, что добавлю это для завершения, если кто-то доберется до этого вопроса/ответа в контексте модульного тестирования вместо приложения. – tvanfosson
@Jan - иногда сеанс перепутался, если вы вносите изменения в приложение без перезапуска веб-сервера. Я часто останавливаю фактический веб-сервер (щелкните правой кнопкой мыши на значке панели задач), когда вижу, что сеансовые беспорядки запускаются в отладчике. Обычно очищает связанные с сеансом вещи. – tvanfosson