Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Pantheonptz
1 / 1 / 2
Регистрация: 05.05.2017
Сообщений: 338
Завершенные тесты: 1
1

Сессии

03.03.2019, 19:35. Просмотров 156. Ответов 1
Метки нет (Все метки)

Как обратиться к элементу сессии? сохраняю время последнего запроса и далее с помощью hangfire каждую минуту проверяю, но к данным сессии из функции savechanges нет. выскакивает nullreferenceexception.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 [Authorize]
        [ResponseType(typeof(data_from_ch))]
        public IHttpActionResult Postdata_from_ch(data_from_ch data_from_ch)
        {
            if (!auth.isValid(RoleOfUser(), "API_ch"))
                return BadRequest("You unathorized");
 
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }
        
            datas.data.Add(data_from_ch);
            HttpContext.Current.Session["API_ch"] = DateTime.Now;
 
            return Ok(data_from_ch.invoice_number + " has been added");//CreatedAtRoute("DefaultApi", new { id = data_from_ch.invoice_number }, data_from_ch);
        }
 
        public static void saveChanges()
        {
            try
            {// оценка времени прошедшего с последнего запроса POST данных
                DateTime last_post = (DateTime)HttpContext.Current.Session["API_ch"];
                if (last_post == null) return;
                TimeSpan interval = DateTime.Now - last_post;
                if (interval.Minutes < 1) return;
            } catch (NullReferenceException e) { return; }           
 
            mailBDEntities db = new mailBDEntities();
            // Сохранение полученных данных в бд    
            foreach (data_from_ch item in datas.data)
                db.data_from_ch.Add(item);
            db.Configuration.AutoDetectChangesEnabled = false;
            try
            {
                db.SaveChangesAsync();
                db.Configuration.AutoDetectChangesEnabled = true;
                datas.data.Clear();
            }
            catch (Exception e)
            {
                logger.Error(e.Message);
                return;
            }
            return;
        }
Добавлено через 1 минуту
C#
1
RecurringJob.AddOrUpdate(() => Data_from_chController.saveChanges(), Cron.Minutely);
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2019, 19:35
Ответы с готовыми решениями:

Переменные сессии
Делаю аутентификацию на сайте. Для хранения некоторой инфы о пользователе использую переменны...

Timeout сессии
Как программно изменить timeout сессии ? В global.asa function Session_OnStart() { ...

Переплетаются сессии
Ув. Форумчане. Такая проблема, в ASP.Net переплетаются сессии,а именно, иногда при переходе с...

Обработка конца сессии
Добрый вечер. Как грамотно обработать конец сессии ? Что-то в global.asa Session_OnEnd() не...

Обновление переменной сессии?
Не могу разрешить такую задачу: Необходимо такой скрипт: По до тех пор, пока не передана из...

1
Usaga
Эксперт .NET
5706 / 3940 / 702
Регистрация: 21.01.2016
Сообщений: 15,508
Завершенные тесты: 2
04.03.2019, 07:57 2
Pantheonptz, не используйте механизм сессий. Мало того, что это обращение к синглтону (сама по себе фиговая практика), так ещё и могут быть проблемы с конкурентным доступом к контроллерам использующим сессию (мы с таким сталкивались в классическом "ASP NET MVC".

Заведите репозиторий под временные объекты. Внедряйте экзепляры (экземпляр) этого репозитория через DI. Храните данные в каком-нибудь потокобезопасном контейнере.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2019, 07:57

Повторный POST запрос в 1 сессии
Доброго дня! Подскажите, как в рамках 1 сессии кидать несколько POST запросов? Дело в том, что...

Вывести в текстбокс переменную из сессии
Всем привет, хочу сделать вот так, но почему то не выводится ничего.. в сессии есть данные,...

Потеря сессии в ASP.NET.
Добрый день! Возникла проблема: при работе сайта происходит потеря сессии. При этом не возникает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru