web-dev-qa-db-fra.com

Classe de démarrage OWIN manquante

Je reçois cette erreur car mon projet ne peut 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, toujours avec 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.

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

Créer une classe avec le nom de démarrage, cela vous aidera.

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

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

Le problème était la dll supplémentaire owin dans mon dossier bin. Lorsque je les ai supprimés, le problème était résolu. Vous devez les supprimer en supprimant le dossier bin. Nettoyer la solution ne supprime pas ces dll.

D'une manière ou d'une autre, IIS exécute toujours les dll OWIN lorsqu'elles se trouvent dans le dossier bin.

193
Hüseyin Yağlı

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

enter image description here

Le modèle produit une telle classe:

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
        }
    }
}
102
Timuçin

Si vous ne souhaitez pas utiliser le démarrage d'OWIN, voici ce que vous devez ajouter à votre fichier web.config:

Sous AppSettings, ajoutez la ligne suivante:

    <add key="owin:AutomaticAppStartup" value="false" />

Voici à quoi cela devrait ressembler dans votre web.config:

  <appSettings>
    <add key="owin:AutomaticAppStartup" value="false" />
  </appSettings>
43
Yonatan Ayalon

Recherchez le fichier _Startup.cs_, il vous manque peut-être un de ceux-ci. Ce fichier est le point d’entrée pour OWIN, il semble donc que cela manque. Jetez un oeil à OWIN Startup class ici pour comprendre ce qui se passe.

Comme votre erreur le spécifie, vous pouvez le désactiver dans le fichier web.config en procédant comme suit ...

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

25
christiandev

Vous devez d’abord créer votre fichier de démarrage puis spécifier les paramètres régionaux de ce fichier dans web.config, dans la balise appSettings avec cette ligne:

<add key="owin:AppStartup" value="[NameSpace].Startup"/>

Cela a résolu mon problème.

17
Slaters

J'ai eu ce problème, comprenez que ce n'est pas ce qui n'allait pas dans le cas du PO, mais dans mon cas, j'avais une classe de démarrage, ce n'était tout simplement pas le trouver par défaut.

Mon problème était que j'avais des espaces dans mon nom d'assembly et que, par conséquent, l'espace de nommage par défaut était différent du nom d'assembly. Par conséquent, l'espace de nommage de la classe de démarrage était différent du nom de l'assembly.

Comme le suggère l'erreur, par convention, il recherche [nom de l'assembly] .Startup pour la classe ... alors assurez-vous que l'espace de noms de votre classe de démarrage est identique au nom de l'assembly. Correction du problème pour moi.

11
TCC

J'ai essayé la plupart des correctifs recommandés ici et je ne pouvais toujours pas éviter le message d'erreur. J'ai finalement réalisé une combinaison de quelques solutions recommandées:

  1. Ajout de cette entrée en haut de la section AppSettings de mon web.config:

    <add key="owin:AutomaticAppStartup" value="false"/>

  2. Développé le noeud Références de mon projet et supprimé tout ce qui contenait la chaîne OWIN. (Je me sentais en sécurité car mon organisation n'était pas (et ne serait pas) un fournisseur OWIN actif à l'avenir)

J'ai ensuite cliqué sur Run et ma page d'accueil a été chargée.

7
Jason Marsell

Dans mon cas, j'avais renommé le projet et changé sa structure de dossiers. J'ai constaté que la mise à jour de RootNameSpace et de AssemblyName dans le fichier .csproj où l'erreur était générée avait résolu l'erreur. Si vous avez modifié les chemins de votre projet, je vous recommande également de vérifier cela.

<RootNamespace>Company.Product.WebAPI</RootNamespace>
<AssemblyName>Company.Product.WebAPI</AssemblyName>
4
Unlearnd

Mon cas? J'ai eu le fichier de démarrage, mais il est exclu dans le projet. Je viens de l'inclure et l'erreur est parti.

3
Gellie Ann

Cela pourrait se produire également dans Visual Studio 2015 lorsque vous utilisez Azure AD avec un projet MVC. Ici, il crée le fichier de démarrage en tant que Startup.Auth.cs dans le dossier App_Start, mais il manquera le

[Assembly: OwinStartup(typeof(MyWebApp.Startup))]

Alors ajoutez-le et vous devriez être prêt à partir. Cela va avant le début de l'espace de noms.

3
Diceyus

Il est également possible d'obtenir cette exception (même si vous avez une classe de démarrage correctement configurée) si vous exécutez IIS Express et que votre répertoire virtuel n'est pas configuré correctement.

Lorsque j'ai rencontré ce problème, la solution consistait simplement à appuyer sur le bouton "Créer un répertoire virtuel" dans l'onglet "Web" des propriétés du projet (Utilisation de Visual Studio 2013).

2
mcarter

Essayez-vous vraiment d'ajouter OWIN à votre projet ou est-ce quelque chose d'inattendu?

  1. Si vous souhaitez ajouter OWIN, l’ajout d’une classe de démarrage est tout indiqué.

  2. Dans le cas où vous n'avez pas besoin de référence à Owin:

    supprimez Owin.dll de votre dossier/bin.

    Owin.dll est celui qui tente d'identifier la classe de démarrage.

2
despuestambien

J'ai rencontré ce problème après avoir expérimenté SignalR, puis l'avoir supprimé du projet. Pour résoudre ce problème, je devais supprimer le contenu du dossier bin du site sur le serveur distant, puis le publier à nouveau.

1
Owen Pauling

Il suffit de vérifier que votre fichier packages.config est bien archivé (lorsqu'il est exclu, un symbole rouge "no entry" apparaît dans l’explorateur). Pour une raison étrange, le mien a été exclu et a causé ce problème.

1
Ian

Bien que je ne puisse pas expliquer en détail pourquoi cela résout le problème pour moi, je me suis heurté à un problème comme celui-ci après avoir modifié mon projet d'API afin qu'il soit généré pour séparer les dossiers \debug et \release. Une fois que j'ai rétabli ce changement, la création d'un dossier \bin unique a commencé à fonctionner.

J'ai écrit mon expérience ici: Impossible d'exécuter la classe de démarrage OWIN dans IIS Express après avoir renommé le fichier de projet ASP.NET

1
Sam Storie

Dans mon cas, je me suis connecté au serveur FTP. A effectué une sauvegarde des fichiers actuels sur le serveur FTP. Supprimez tous les fichiers manuellement du serveur FTP. Solution propre, redéployé le code. Ça a marché.

0
Kurkula

Je continuais à avoir la même erreur lorsque j'ai commencé mon projet en utilisant le tableau de bord de lien de navigateur dans VS2013. Mais, lorsque j’exécutais mon projet en mode débogage, cela fonctionnait. Je ne pouvais pas comprendre pourquoi et comment faire fonctionner le tableau de bord du navigateur. J'ai vérifié le fichier de démarrage, tout allait bien, a ajouté la ligne appSetting comme décrit dans certaines réponses "", mais rien n'a fonctionné.

Apparemment, je me suis trompé en cliquant sur le lien FAUX dans le tableau de bord du navigateur. Tous les liens de projets de solutions apparaissent dans le tableau de bord du navigateur, mais seul le lien de projets de démarrage fonctionne. Vous devez cliquer sur le lien du projet de démarrage.

Exemple: J'ai 2 projets, tous deux affichés dans le tableau de bord du navigateur, mais seul celui marqué comme projet de démarrage fonctionnera (s'affiche en gras dans l'explorateur de solutions.) jours à tomber sur l'évidence.

0
alikuli

J'ai eu ce problème quand j'ai eu le dernier sur TFS alors que d'autres projets étaient ouverts dans plusieurs instances de VS. J'ai déjà tous les correctifs ci-dessus. La réouverture de VS a résolu le problème.

0
PersyJack