Миграция режима состояния сеанса ASP.NET InProc в режимы вне процесса: проверка, все ли переменные, хранящиеся в объекте сеанса, сериализуются - PullRequest
0 голосов
/ 12 июня 2019

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

У меня есть решение ASP.NET MVC с большим количеством проектов. Большинство проектов в этом решении ссылаются на библиотеки DLL, которые создаются другими проектами в других решениях, а не на проекты в том же решении.

Это веб-приложение ASP.NET использует режим состояния сеанса InProc. Теперь я пытаюсь перевести его в режим состояния сеанса вне процесса (sqlserver или состояние сервера).

Так как режимы состояния сеанса вне процесса требуют, чтобы переменные, хранящиеся в объекте сеанса, были сериализованы, в Visual Studio я ищу все строки в решении, где переменные хранятся в объекте сеанса, и проверяю, используются ли эти переменные. сериализованная. Поскольку назначения в коде имеют вид, подобный Session ["Key"] = значение, я ищу строки, начинающиеся с "Session [" (без двойных кавычек). Это возвращает операцию чтения / записи на объекте Session, а не только операции записи, которые меня интересуют. Поэтому я попытался найти шаблон «Session [] = *» (без двойных кавычек), появляющийся в том же самом строка с использованием подстановочных знаков, но кажется, что она работает неправильно, я имею в виду, строка сеанса может быть в одной строке, "[" в другой, "]" в другой и так далее ...

Кроме того, поскольку многие проекты ссылаются на библиотеки DLL напрямую (вместо того, чтобы указывать на проекты в том же решении), сгенерированные другим решением, мне нужно открывать все другие решения одно за другим в другом экземпляре Visual Studio для поиска объекта сеанса. назначения ...

Итак, мои проблемы в основном:

  1. Какое правильное регулярное выражение использует подстановочные знаки для поиска всех назначения объекта сеанса в одной строке, не пропуская ни одного вхождения?
  2. Учтено, что большинство проектов в справочном решении DLL непосредственно генерируются другими проектами в других решениях, что наилучший способ поиска всех назначений объекта сеанса одновременно и не пропуская ни одного вхождения?

Поскольку все мои проекты находятся в корневой папке, я мог бы использовать Notepad ++ для поиска назначений объекта сеанса во всех файлах одновременно ... но я не уверен, что это лучший способ продолжить ...

...