233 votes

La classe de démarrage OWIN est manquante

Je reçois cette erreur car mon projet ne parvient pas à trouver la référence pour la classe de démarrage OWIN. J'ai même installé tous les packages de référence OWIN via Nuget et je rencontre toujours le même problème. J'utilise Visual Studio 2012 et MVC4.

Les erreurs suivantes se sont produites lors de la tentative de chargement de l'application.

  • Aucune assembly trouvée contenant un OwinStartupAttribute.
  • Aucune assembly trouvée contenant une classe de démarrage ou une classe Startup [AssemblyName]. Pour désactiver la découverte de démarrage OWIN, ajoutez l'appSetting owin:AutomaticAppStartup avec une valeur de "false" dans votre fichier web.config. Pour spécifier l'assembly, la classe ou la méthode de démarrage OWIN, ajoutez l'appSetting owin: AppStartup avec le nom de la classe de démarrage entièrement qualifié ou le nom de la méthode de configuration dans votre fichier web.config.

7 votes

Avez-vous un fichier Startup.cs dans le projet ?

4 votes

Est-ce que votre assembly contient un OwinStartupAttribute? Est-ce que votre assembly contient une classe Startup ou [NomDeLAssembly].Startup? Avez-vous désactivé la découverte de démarrage OWIN en ajoutant l'appSetting owin:AutomaticAppStartup avec une valeur de "false" dans votre web.config? Avez-vous fait l'une de ces choses et vous demandez pourquoi cela ne fonctionne pas? Quelle est votre question?

1 votes

C'est ça le truc. Il ne montre pas la classe de démarrage OWIN lorsque j'essaie d'ajouter un nouvel élément dans mon projet. J'ai cherché sur Google, ça dit d'ajouter des références OWIN à travers NuGet et j'ai fait la même chose. Je ne parviens toujours pas à trouver la classe à ajouter.

216voto

cracker Points 1385

Créez une classe avec le nom de Startup, cela vous aidera..

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

120 votes

De plus, si votre classe de démarrage n'est pas dans votre espace de noms par défaut, ajoutez une ligne de configuration web à la zone comme suit :

7 votes

De nos jours, il existe 3 façons de configurer Owin : asp.net/aspnet/overview/owin-and-katana/…

0 votes

@Jaider, Cela concerne Visual Studio 2013 et la question concerne Visual Studio 2012 :) ;)

198voto

Hüseyin Yağlı Points 583

Dans notre projet, nous n'avons pas eu besoin de la fonctionnalité OWIN, donc nous avons supprimé toutes les références owin du projet initial de modèle ASP.NET MVC. Le problème est survenu après avoir retiré la classe de démarrage OWIN.

Le problème était les dll owin supplémentaires dans mon dossier bin. Lorsque je les ai supprimés, le problème a été résolu. Vous devez les supprimer en supprimant le dossier bin. La Solution Propre ne supprime pas ces dll.

De quelque manière, IIS exécute toujours les dll OWIN lorsqu'ils sont dans le dossier bin.

6 votes

J'ai également eu ce problème et j'ai aussi dû m'assurer que les références ne faisaient pas référence à des DLL OWIN.

2 votes

Même problème et même solution. Cependant, dans mon cas, j'avais une branche de code avec Signalr et une sans. Lors du passage d'une branche à l'autre, les fichiers dll de Signalr sont restés même après un Nettoyage. J'ai dû les supprimer manuellement.

3 votes

Juste une note pour dire que cela signifie littéralement le dossier bin et pas seulement l'utilisation de "Nettoyer la solution" depuis Visual Studio, ce qui dans mon cas supprimait la plupart des DLL mais pas toutes.

108voto

Timuçin Points 2193

Sur Visual Studio 2013 RC2, il existe un modèle pour cela. Ajoutez-le simplement au dossier App_Start.

entrez la description de l'image ici

Le modèle produit une classe telle que :

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)
        {
            // Pour plus d'informations sur la configuration de votre application, visitez http://go.microsoft.com/fwlink/?LinkID=316888
        }
    }
}

3 votes

VS2015 avait également besoin de cela

2 votes

Cela l'a fait pour moi - j'ai créé le fichier Startup.cs et je l'ai correctement renseigné, mais j'ai oublié qu'il devait être dans le dossier App_Start. Il s'est bien exécuté sur ma machine de développement, mais une fois publié, il affichait des erreurs. Merci!

0 votes

N'oubliez pas d'ajouter app.MapSignalR(); dans Configuration(IAppBuilder app), sinon une erreur 404 est renvoyée lors de l'appel de [VotreSite]/signalr

25voto

christiandev Points 7747

Consultez le fichier Startup.cs, vous pourriez en manquer un de ces fichiers. Ce fichier est le point d'entrée pour OWIN, il semble donc que cela manque. Jetez un coup d'œil à la classe de démarrage OWIN ici pour comprendre ce qui se passe.

Comme l'indique votre erreur, vous pouvez désactiver cela dans le web.config en faisant ce qui suit...

Pour désactiver la découverte de démarrage OWIN, ajoutez l'appSetting owin:AutomaticAppStartup avec une valeur de "false" dans votre web.config

5 votes

J'ai ajouté au groupe et le fichier Startup.cs n'était plus nécessaire.

0 votes

@webworm, je mentionne cela ci-dessus.

2 votes

@christiandev que fera exactement ? Cela désactivera-t-il une fonctionnalité quelconque? Devons-nous démarrer l'application plus tard pour pouvoir utiliser toute fonctionnalité OWIN?

11voto

TCC Points 476

J'ai eu ce problème, comprenez que ce n'était pas ce qui n'allait pas dans le cas de l'OP, mais dans mon cas j'avais une classe Startup, elle ne le trouvait tout simplement pas par défaut.

Mon problème était que j'avais des espaces dans le nom de mon assembly, et donc l'espace de noms par défaut était différent du nom de l'assembly, donc l'espace de noms pour la classe de démarrage était différent du nom de l'assembly.

Comme l'erreur le suggère, par convention, il recherche [Nom de l'assembly].Startup pour la classe... donc assurez-vous que l'espace de noms de votre classe Startup est le même que le nom de l'assembly. Cela a résolu le problème pour moi.

1 votes

J'ai rencontré un problème similaire. Le nom de mon projet contenait un tiret '-' dedans, qui a été converti en trait de soulignement par VS, donc l'espace de noms et la classe de démarrage étaient essentiellement différents.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X