Classe de démarrage OWIN 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, mais j’ai 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.

  • Aucun assemblage trouvé contenant un OwinStartupAtsortingbute.
  • Aucun assemblage trouvé contenant une classe Startup ou [AssemblyName] .Startup. Pour désactiver la découverte de démarrage OWIN, ajoutez l’appSetting owin: 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 appSetting owin: AppStartup avec la classe de démarrage ou le nom de la méthode de configuration pleinement qualifié dans votre fichier web.config.

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

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

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

Le problème était le supplément de dll 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. Clean 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.

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

entrer la description de l'image ici

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 } } } 

Si vous ne souhaitez pas utiliser le démarrage d’OWIN, vous devez l’append à votre fichier web.config :

Sous AppSettings, ajoutez la ligne suivante:

   

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

     

Startup.cs fichier Startup.cs , il se peut que vous en manquiez un. Ce fichier est le point d’entrée pour OWIN, il semble donc que cela manque. Jetez un oeil à la 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 de démarrage OWIN, ajoutez le appSetting owin: AutomaticAppStartup avec la valeur “false” dans votre fichier web.config.

Vous devez d’abord créer votre fichier de démarrage et après avoir spécifié les parameters régionaux de ce fichier dans web.config, à l’intérieur de la balise appSettings avec cette ligne:

Cela a résolu mon problème.

J’ai eu ce problème, comprenez que ce n’est pas ce qui n’allait pas dans le cas de l’OP, mais dans mon cas, j’ai eu une classe de démarrage, elle ne la trouvait pas par défaut.

Mon problème était que j’avais des espaces dans mon nom d’assembly, et donc que 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 le suggère l’erreur, par convention, il recherche [Assembly Name] .Startup pour la classe… alors assurez-vous que l’espace de noms de votre classe Startup est identique au nom de l’assembly. Correction du problème pour moi.

J’ai essayé la plupart des correctifs recommandés et je n’ai toujours pas pu é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 site web.config :

  2. Développé le nœud Références de mon projet et supprimé tout ce qui contenait la chaîne OWIN . (Je me suis senti en sécurité car mon organisation n’est pas (et ne sera pas) un fournisseur actif de OWIN à l’avenir.)

J’ai ensuite cliqué sur Run et ma page d’accueil s’est chargée tout de suite.

Mon cas? J’avais un fichier de démarrage, mais il est exclu du projet. Je viens de l’inclure et l’erreur est partie.

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

 Company.Product.WebAPI Company.Product.WebAPI 

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

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

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

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

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

Bien que je ne puisse pas expliquer entièrement pourquoi cela a résolu le problème pour moi, j’ai rencontré un problème comme celui-ci après avoir modifié mon projet d’API pour créer des dossiers séparés \debug et \release . Une fois que je suis revenu à ce changement pour créer un seul dossier \bin , les choses ont 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

J’ai rencontré ce problème après avoir expérimenté SignalR, puis l’ai retiré du projet. Pour résoudre le problème, j’ai dû supprimer le contenu du dossier bin du site sur le serveur distant, puis le publier à nouveau.

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

  1. Si vous souhaitez append OWIN, l’ajout d’une classe de démarrage est la voie à suivre.

  2. Si vous n’avez pas besoin de faire référence à Owin :

    Supprimez Owin.dll de votre dossier / bin .

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

Vérifiez simplement que votre fichier packages.config est archivé (s’il est exclu, il y aura un symbole rouge sans saisie dans l’explorateur). Pour une raison bizarre, le mien a été exclu et a causé ce problème.

J’ai continué à avoir la même erreur lorsque j’ai démarré mon projet en utilisant le tableau de bord du navigateur dans VS2013. Mais, lorsque j’ai exécuté mon projet en mode débogage, cela fonctionnerait. Je n’arrivais pas à comprendre pourquoi et comment faire fonctionner le tableau de bord du navigateur. J’ai vérifié le fichier de démarrage, c’était bien, a ajouté la ligne appSetting comme décrit dans certaines des réponses “”, mais rien n’a fonctionné.

Apparemment, ce que je faisais mal était de cliquer sur le lien WRONG dans le tableau de bord du navigateur. Tous les liens des projets Solutions s’affichent dans le tableau de bord du navigateur, mais seul le lien des 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 qui est marqué comme projet de démarrage fonctionnera (apparaît en gras dans l’Explorateur de solutions). jours pour tomber sur l’évidence.

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à toutes les corrections ci-dessus. Réouverture VS a résolu le problème.

Dans mon cas, je me suis connecté au serveur ftp. Pris la 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é.