Нет смысла передавать этот объект HttpContext.Current
из веб-приложения в веб-службу или любые другие комбинации такого взаимодействия.
Класс HttpContext
и его статический член Current
являютсядолжен быть доступен и инициализирован для вас в веб-приложении или веб-службах, работающих внутри IIS.
, если ваши веб-службы настроены для запуска в другом пуле приложений или другом приложении в IIS, ваш current
будет возвращать что-тоотличается от Current
веб-интерфейса.
, если вам нужно передать некоторые свойства, такие как имя пользователя, заголовок ответа или запроса и т. д., передать множество параметров или создать свой собственный класс для размещения всех васнужно, но не передавайте контекст напрямую.
В некоторых случаях, если вы не можете получить контекст или сеанс, возможно, вы что-то не так кодируете;например, HttpHandlers правильно использует Session только при реализации IRequireSessionState
, а объект HttpContext
передается обработчику в качестве параметра метода ProcessRequest
.
Я думаю, что в общем случае всегда есть обходной путь илиВаш дизайн и архитектура неправильны, но вам не нужно самостоятельно передавать контекст из одного слоя в другой.