HttpSelfHostServer и HttpContext.Current - программирование
Подтвердить что ты не робот

HttpSelfHostServer и HttpContext.Current

Я работаю над собственным хостингом ASP.NET для веб-приложений. Все работает нормально, но теперь я борюсь с HttpContext:

Мне нужно сохранить сессионную информацию от клиента. Но HttpContext.Current всегда равно нулю. Поэтому очевидно, что мой HttpSelfHostServer не работает со статическим HttpContext-Class.

Я не понимаю, почему...? И я не могу найти способ сказать ни HtttpSelfHostServer, ни HttpSelfHostConfiguration работать с HttpContext.

Вот что я делаю:

  • Создание HttpSelfHostConfiguration

    • 1.1 Добавление Service-Resolvers и Routes
    • 1.2 Добавление пользовательских UserNamePassword-Validator
  • создать новый экземпляр HttpSelfHostServer с конфигурацией

    • 2.1 server.OpenAsync().Wait()

Любая помощь, как я могу сказать, что мой сервер работает с HttpContext.Current, очень ценится! Ура!

4b9b3361

Ответ 1

Вы не сможете использовать HttpContext в собственной среде. HttpContext устанавливается конвейером ASP.Net, который у вас не будет, если вы не работаете под IIS/ASP.Net.

HttpContext доступен только в режиме веб-хостинга, в котором HttpControllerHandler создает запрос.

FYI- Я приглашаю вас прочитать следующие замечательные статьи от Педро Феликса, чтобы лучше понять разные модели хостинга:

Ответ 2

Чтобы обойти эту проблему (я нахожу, что в наши дни я использую много компонентов, которые должны одинаково хорошо работать в Web API и MVC), вы можете попробовать эту старую прокладку, которую я написал, чтобы вернуть интерфейс HttpContext который работает в обоих вариантах. Это также на NuGet, здесь источник: Ссылка на github (или Ссылка на Nuget)