remoteendpointmessageproperty practices example best c# asp.net-web-api httpcontext self-hosting

c# - practices - HttpSelfHostServer y HttpContext.Current



web api authentication token example (2)

No podrá utilizar HttpContext en un entorno auto hospedado. HttpContext se establece mediante la canalización de ASP.Net, que no tendrá si no se ejecuta bajo IIS / ASP.Net.

HttpContext solo está disponible en el modo de alojamiento web, en el que HttpControllerHandler crea la solicitud.

Para tu información, te invito a leer los siguientes artículos de Pedro Félix para comprender mejor los diferentes modelos de alojamiento:

Estoy trabajando en una aplicación web api de ASP.NET. Todo funciona bien, pero ahora estoy luchando con HttpContext :

Necesito guardar información de sesión del cliente. Pero HttpContext.Current siempre es nulo. Así que es obvio que mi HttpSelfHostServer no funciona con la clase estática HttpContext.

Lo que no entiendo es: ¿por qué ..? Y no puedo encontrar una manera de decirle a HtttpSelfHostServer ni a HttpSelfHostConfiguration que trabajen con HttpContext .

Esto es lo que estoy haciendo:

  1. Creando una HttpSelfHostConfiguration

    • 1.1 Adición Service-Resolvers y Routes
    • 1.2 Adición de nombre de UserNamePassword-Validator personalizado UserNamePassword-Validator
  2. crear una nueva instancia de HttpSelfHostServer con la configuración

    • 2.1 server.OpenAsync().Wait()

Cualquier ayuda sobre cómo puedo decirle a mi servidor que trabaje con HttpContext.Current es muy apreciada. ¡Aclamaciones!


Para solucionar este problema (me parece que estoy usando muchos componentes en estos días que necesitan funcionar igual de bien en Web API y MVC), puede probar este shim antiguo que escribí para devolverle una interfaz similar a HttpContext que funciona en Ambos sabores. También está en NuGet, aquí está la fuente: Enlace en github (o Enlace en Nuget )