ControllerContext против HttpContext в Azure

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

Предполагая, что нет реальной разницы, могу ли я гарантировать, что эти два будут равны при вызове действия контроллера? Я пытаюсь написать модульные тесты для установленного приложения, которое делает некоторые вызовы HttpContext.Current в действиях контроллера. В некоторых местах по всему приложению изменения вносятся непосредственно в HttpContext.Current (особенно в рамках авторизации). Если я переключусь на ControllerContext, будут ли отражены изменения, внесенные в HttpContext.Current?

Спасибо!

2 ответа

Решение

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

См. Этот вопрос и ответ - Разница между HttpContext.Current и Controller.Context в MVC ASP.NET.

Для возможности тестирования лучше перейти к ControllerContext, если вы можете.

Что касается ControllerContext против HttpContext, я понятия не имею. Я просто знаю, что Windows Azure не имеет к этому никакого отношения. Windows Azure работает под управлением Windows и IIS7 - поэтому, какой бы ни был ответ на ваше локальное решение, он в равной степени относится к облаку.

Другие вопросы по тегам