Как получить всю активную сессию из приложения asp.net

Из документации fread , это функция для чтения двоичных данных. Второй аргумент определяет размер выходного вектора, третий - размер / тип прочитанных элементов.

Чтобы воссоздать это в Python, вы можете использовать array :

f = open(...)
import array
a = array.array("L")  # L is the typecode for uint32
a.fromfile(f, 3)

Это будет читать три значения uint32 из файла f, которые затем доступны в a. Из документации по fromfile :

Прочитайте n элементов (как машинные значения) из файлового объекта f и добавьте их в конец массива. Если доступно меньше n элементов, EOFError будет поднят, но элементы, которые были доступны, все еще вставлены в массив. f должен быть реальным встроенным файловым объектом; что-то еще с методом read () не будет делать.

blockquote>

Массивы реализуют протокол последовательности и, следовательно, поддерживают те же операции, что и списки, но вы также можете использовать метод .tolist() для создания обычный список из массива.

0
задан Manish Kumawat 17 January 2019 в 09:24
поделиться

1 ответ

Я провел дополнительное расследование и создал POC, чтобы проверить, создает ли он копию сеансов по ссылке или по значению.

Я обнаружил, что он создает копию по ссылке. Так что технически нет проблемы использования памяти, если я добавлю их ссылку в класс SessionTracker. Вот полная реализация класса SessionTracker, если кому-то интересно узнать об этом

public class SessionTracker : IRegisteredObject
{
    static readonly SessionTracker Tracker = new SessionTracker();
    private static readonly Dictionary<string, HttpSessionState> _sessions = new Dictionary<string, HttpSessionState>();
    private static readonly object padlock = new object();
    private SessionTracker()
    {
    }
    public void Stop(bool immediate)
    {
        try
        {
            //store them in database
        }
        catch (Exception ex)
        {
            throw;
        }
    }

    public void AddSession(HttpSessionState session)
    {
        lock (padlock)
        {
            _sessions.Add(session.SessionID, session);
        }
    }

    public void RemoveSession(HttpSessionState session)
    {
        lock (padlock)
        {
            _sessions.Remove(session.SessionID);
        }
    }

    public static SessionTracker GetInstance()
    {
        return Tracker;
    }


}
0
ответ дан Manish Kumawat 17 January 2019 в 09:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: