Classe di avvio OWIN mancante

Ricevo questo errore perché il mio progetto non è in grado di trovare il riferimento per la class di avvio OWIN . Ho persino installato tutti i pacchetti di riferimento OWIN tramite Nuget con lo stesso problema. Sto usando Visual Studio 2012 e MVC4 .

Si sono verificati i seguenti errori durante il tentativo di caricare l’app.

  • Nessun assembly trovato contenente un OwinStartupAttribute.
  • Nessun assembly trovato contenente una class Startup o [AssemblyName] .Startup. Per disabilitare la scoperta all’avvio OWIN, aggiungi l’appSetting owin: AutomaticAppStartup con un valore di “false” nel tuo web.config. Per specificare l’assembly, la class o il metodo di avvio OWIN, aggiungi l’appSetting owin: AppStartup con la class di avvio completa o il nome del metodo di configurazione nel web.config.

Crea una class con nome Startup ti aiuterà

 public class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(); } } 

Nel nostro progetto, non avevamo bisogno della funzionalità OWIN, quindi abbiamo rimosso tutti i riferimenti owin dal progetto di modello ASP.NET MVC iniziale. Il problema si è verificato dopo aver rimosso la class di avvio OWIN.

Il problema era l’extra owin dll nella mia cartella bin. Quando li ho cancellati, il problema è stato risolto. Dovresti eliminarli eliminando la cartella bin. Clean Solution non elimina queste DLL.

In qualche modo, IIS esegue ancora le DLL OWIN quando si trovano nella cartella bin.

Su Visual Studio 2013 RC2, esiste un modello per questo. Basta aggiungerlo alla cartella App_Start.

inserisci la descrizione dell'immagine qui

Il modello produce una class simile:

 using System; using System.Threading.Tasks; using Microsoft.Owin; using Owin; [assembly: OwinStartup(typeof(WebApiOsp.App_Start.Startup))] namespace WebApiOsp.App_Start { public class Startup { public void Configuration(IAppBuilder app) { // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888 } } } 

Se non vuoi utilizzare l’avvio OWIN, questo è ciò che dovresti aggiungere al tuo file web.config :

Sotto AppSettings aggiungi la seguente riga:

   

Ecco come dovrebbe apparire nel tuo web.config:

     

Dai un’occhiata al file Startup.cs , potresti mancare uno di questi. Questo file è il punto di ingresso per OWIN, quindi sembra che manchi. Dai un’occhiata alla OWIN Startup class qui per capire cosa sta succedendo.

Come specificato dal tuo errore, puoi disabilitare questo in web.config procedendo come segue …

Per disabilitare la scoperta all’avvio di OWIN, aggiungi l’appSetting owin: AutomaticAppStartup con un valore di “false” nel tuo web.config

Per prima cosa devi creare il tuo file di avvio e dopo devi specificare la locale di questo file in web.config, all’interno del tag appSettings con questa linea:

Ha risolto il mio problema.

Ho avuto questo problema, ho capito che non era quello che era sbagliato nel caso dell’OP, ma nel mio caso avevo una class di avvio, ma non lo trovavo di default.

Il mio problema era che avevo degli spazi nel mio Nome Assemblaggio, e quindi lo spazio dei nomi predefinito era diverso dal nome dell’assembly, quindi lo spazio dei nomi per la class di avvio era diverso dal nome dell’assembly.

Come suggerisce l’errore, per convenzione cerca [Nome Assemblaggio] .Startup per la class … quindi assicurati che lo spazio dei nomi per la tua class Startup sia lo stesso del nome dell’Assembly. Risolto il problema per me.

Ho provato la maggior parte delle correzioni raccomandate qui, e ancora non ho potuto evitare il messaggio di errore. Alla fine ho eseguito una combinazione di alcune soluzioni consigliate:

  1. Aggiunta questa voce nella parte superiore della sezione AppSettings del mio web.config :

  2. Esteso il nodo References del mio progetto e cancellato tutto ciò che conteneva la stringa OWIN . (Mi sentivo sicuro di farlo in quanto la mia organizzazione non è (e non sarà) un fornitore di OWIN attivo in futuro)

Ho quindi fatto clic su Run e la mia home page è stata caricata correttamente.

Il mio caso? Avevo il file di avvio, ma è escluso nel progetto. L’ho appena incluso e ho lasciato l’errore.

Nel mio caso, avevo rinominato il progetto e cambiato la sua struttura di cartelle. Ho riscontrato che l’aggiornamento di RootNameSpace e AssemblyName nel file .csproj in cui veniva generato l’errore risolveva l’errore. Se hai modificato i percorsi del tuo progetto ti consiglio di controllare anche questo.

 Company.Product.WebAPI Company.Product.WebAPI 

È anche ansible ottenere questa eccezione (anche quando si dispone di una class di avvio configurata correttamente) se si esegue IIS Express e la directory virtuale non è configurata correttamente.

Quando ho riscontrato questo problema, la risoluzione era semplicemente quella di premere il pulsante “Crea directory virtuale” nella scheda “Web” delle proprietà del progetto (utilizzando Visual Studio 2013)

Ciò potrebbe essere affrontato anche in Visual Studio 2015 quando si utilizza Azure AD con un progetto MVC. Qui crea il file di avvio come Startup.Auth.cs nella cartella App_Start ma mancherà

 [assembly: OwinStartup(typeof(D_ToolsWebApp.Startup))] 

Quindi aggiungilo e dovresti essere bravo a farlo. Questo va prima che inizi lo spazio dei nomi.

Anche se non riesco a spiegare completamente perché questo ha risolto il problema, mi sono imbattuto in un problema di questo tipo dopo aver modificato il mio progetto API per creare separare le cartelle \debug e \release . Una volta ripristinato il cambiamento per creare una singola cartella \bin cose hanno iniziato a funzionare.

Ho scritto la mia esperienza qui: Imansible ottenere la class Startup OWIN da eseguire in IIS Express dopo aver rinominato il file di progetto ASP.NET

Mi sono imbattuto in questo problema dopo aver sperimentato con SignalR e poi rimuoverlo dal progetto. Per risolvere ho dovuto cancellare il contenuto della cartella bin per il sito sul server remoto e quindi pubblicare di nuovo.

Stai davvero cercando di aggiungere OWIN al tuo progetto o è qualcosa di inaspettato?

  1. Nel caso in cui si desideri aggiungere OWIN, aggiungere una class di avvio è la strada da percorrere.

  2. Nel caso in cui non hai bisogno di alcun riferimento a Owin :

    eliminare Owin.dll dalla cartella / bin .

    Owin.dll è quello che tenta di identificare la class di avvio.

Basta controllare che il file packages.config sia archiviato (quando escluso, ci sarà un simbolo rosso senza entrata mostrato in explorer). Per qualche strana ragione la mia è stata esclusa e ha causato questo problema.

Ho continuato a ricevere lo stesso errore quando ho avviato il mio progetto utilizzando la dashboard Link Browser in VS2013. Ma, quando ho eseguito il mio progetto in modalità di debug, funzionerebbe. Non riuscivo a capire perché e come far funzionare il Dashboard di Link Browser. Ho controllato il file di avvio, è andato tutto bene, ho aggiunto la riga appset come descritto in alcune delle risposte “”, ma niente ha funzionato.

Apparentemente, quello che stavo facendo era fare clic sul link SBAGLIATO in Browser Dashboard. Tutti i link ai progetti di soluzioni vengono visualizzati nella dashboard del browser, ma solo i link di avvio progetti funzionano. Devi cliccare sul link del progetto di avvio.

Esempio: Ho 2 progetti, entrambi mostrati nel Browser Dashboard, ma funzionerà solo quello contrassegnato come start up (mostrato in grassetto in Solution Explorer.) Ho pensato che questo potesse aiutare qualcuno a fare l’ovvio, mi è costato 2 giorni per inciampare sull’ovvio.

Ho avuto questo problema quando ho avuto l’ultima su TFS mentre altri progetti erano aperti in più istanze di VS. Ho già tutte le correzioni sopra. La riapertura di VS ha risolto il problema.

Nel mio caso, ho effettuato l’accesso al server ftp. Preso il backup dei file correnti sul server ftp. Elimina tutti i file manualmente dal server ftp. Soluzione pulita, ridistribuito il codice. Ha funzionato.