Ответ 1
см. Запись на сеанс только для чтения в MVC 3+
Это сообщение утверждает, что поведение непоследовательно. Я определенно могу написать Session в контроллерах, используя ReadOnly.
Я бы относился к этому так:
Обязательный означает, что вы запрашиваете эксклюзивную блокировку сеанса (т.е. Параллельная обработка запросов для того же идентификатора сеанса) ReadOnly означает, что вы запрашиваете неэксклюзивную блокировку сеанса (т.е. Ваш запрос по-прежнему должен ждать завершения запросов с исключительной блокировкой, но вы можете обрабатывать запросы с неэксклюзивными блокировками параллельно. Однако это зависит от вы убедитесь, что ваш код не записывается на сеанс. Это не обязательно выполняется каркасом)Я понимаю, что это противоречит http://msdn.microsoft.com/en-us/library/system.web.sessionstate.sessionstatebehavior.aspx
Для запроса включено состояние сеанса только для чтения. Это означает, что состояние сеанса не может быть обновлено.
но, похоже, вы действительно можете обновить состояние сеанса в некоторых сценариях.