Ho bisogno di eseguire la mia applicazione che fornisce alcuni servizi API Web ASP.NET su entrambe le modalità self host IIS e .NET CLR. Ho sviluppato i miei servizi API Web ASP.NET basati su OWIN e funziona correttamente su entrambi gli host. Per ora ho bisogno di qualcosa di simile:Ottieni il contesto owin corrente in modalità auto host
public class OwinContextInfrastructure
{
public static IOwinContext Current
{
get
{
if (HttpContext.Current != null)
{
return HttpContext.Current.GetOwinContext();
}
else
{
// What should I do here ?
return null;
}
}
}
}
per ottenere attuale contesto Owin ogni volta che ho bisogno nella mia applicazione.
Il mio codice funziona correttamente su IIS, ma cosa devo fare in modalità .NET Self Host?
Ciao! Devo accedere anche a IOwinContext per un hub SignalR self-hosted ... puoi mostrare il codice che hai usato per favore? Dopo aver letto entrambe le risposte, non sono ancora sicuro di come farlo ... 'Request' è una proprietà di un' System.Web.Mvc.Controller' che non posso usare dal mio hub :( – ibiza
"Autofac.Owin "avvia l'iniezione di dipendenza utilizzando un Oware Middleware, continuerà a passare tutti gli oggetti per richiesta incluso IOwinContext ad altri middleware come Web API e SignalR e altri middleware compresi quelli che sono sviluppati dal tuo, ma ASP.NET MVC non è un middleware compatibile owin Non puoi auto-ospitare ASP.NET MVC, mi confondo con la tua domanda/-: –
Ok, Autofac è per il mocking e il testing, non sono in questo contesto. Speravo che avresti aggiornato la tua risposta con un po 'di codice, grazie comunque – ibiza