2015-07-16 23 views
6

Mi sembra di avere lo stesso problema di described in this thread. I sto lavorando su un'applicazione web ASP.NET MVC che funziona a livello locale. Quando schierato al nostro Windows Server 2008 con IIS7, tuttavia, ottengo il seguente errore quando si tenta di accedere:ASP.NET MVC: No owin.Environment

No owin.Environment item was found in the context.

Questa è la linea che fa scattare questo errore:

return _signInManager ?? HttpContext.GetOwinContext().Get<ApplicationSignInManager>(); 

Ho provato tutti Ho trovato:

  1. Aggiunta di <add key="owin:AppStartup" value="My_App.Startup,My-App"/> toe web.config. La mia applicazione ha un trattino nel suo nome, ma che non dovrebbe essere un problema, giusto?
  2. Aggiunta di <add key="owin:AutomaticAppStartup" value="true"/> a web.config.
  3. Aggiunta di <modules runAllManagedModulesForAllRequests="true"> a web.config.
  4. Ho verificato che Microsoft.Owin.Host.SystemWeb è installato e nella cartella bin .
  5. Cancellare i file temporanei di ASP.net.
  6. Il pool di app è impostato su "integrata"

Sta lavorando bene a livello locale. Cosa mi manca?

Questo non è un duplicato di this thread. Ho provato la soluzione da lì (vedi il mio # 1) senza successo. Inoltre, non ho cambiato lo spazio dei nomi.

Modifica Una soluzione è quella di registrare l'OwinHttpHandler esplicitamente nel web.config, ma questo ha avuto alcuni strani effetti collaterali (il mio CSS e JavaScript non vengono caricati più, Stato 404?):

<handlers> 
    <add name="OWIN" path="*" verb="*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler" /> 
</handlers> 
+0

Sembra un duplicato: http: // StackOverflow.it/questions/18232549/no-owin-environment-item-was-found-in-the-context – morganpdx

+0

Non è un duplicato perché la soluzione fornita qui non ha funzionato per me - l'ho già provato (vedi il mio punto n. 1 e # 4) – peter

+0

Come viene configurato il pool di applicazioni? –

risposta

0

Convenzione di denominazione:Katana cerca una classe denominata Avvio nello spazio dei nomi che corrisponde al nome dell'assembly o allo spazio dei nomi globale.

OwinStartup Attributo:Questo è l'approccio maggior parte degli sviluppatori prenderanno per specificare la classe di avvio. Il seguente attributo imposterà la classe di avvio sulla classe TestStartup nello spazio dei nomi StartupDemo.

[assembly: OwinStartup(typeof(StartupDemo.TestStartup))] 

<appSettings> 
    <add key="owin:appStartup" value="StartupDemo.ProductionStartup" /> 
</appSettings> 

La chiave seguente, che specifica esplicitamente la classe di avvio e l'assemblaggio può essere utilizzato anche:

<add key="owin:appStartup" value="StartupDemo.ProductionStartup, StartupDemo" /> 


<appSettings> 
    <add key="owin:appStartup" value="ProductionConfiguration" />  
</appSettings> 

È possibile che questo markup deve essere utilizzato con i seguenti OwinStartup attributo che specifica un nome e le cause la classe ProductionStartup2 da eseguire.

[assembly: OwinStartup("ProductionConfiguration", typeof(StartupDemo.ProductionStartup2))] 

namespace StartupDemo 
{ 
    public class ProductionStartup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      app.Run(context => 
      { 
       string t = DateTime.Now.Millisecond.ToString(); 
       return context.Response.WriteAsync(t + " Production OWIN App"); 
      }); 
     } 
    } 
    public class ProductionStartup2 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      app.Run(context => 
      { 
       string t = DateTime.Now.Millisecond.ToString(); 
       return context.Response.WriteAsync(t + " 2nd Production OWIN App"); 
      }); 
     } 
    } 
}