web-dev-qa-db-fra.com

Erreur Owin avec l'application ASP.NET MVC

J'ai une application ASP.NET qui fonctionne correctement sur mon ordinateur local. Je viens de le télécharger sur un serveur à l'aide du déploiement Web. Je reçois le message d'erreur suivant lorsque j'essaie de consulter le site:

Les erreurs suivantes se sont produites lors de la tentative de chargement de l'application .- L'attribut OwinStartup découvert dans le type de démarrage de référence 'Gators3' de l'assembly 'Gators3.Startup' est en conflit avec l'attribut dans le type de démarrage de référence 'MyFirstProject2.Startup de l'assembly' 'parce qu'ils ont le même FriendlyName' '. Supprimez ou renommez l'un des attributs, ou référencez directement le type souhaité . Pour désactiver la découverte au démarrage OWIN, ajoutez le owin appSetting: AutomaticAppStartup avec la valeur "false" dans votre web.config . Pour spécifier le paramètre OWIN Assemblée, classe ou méthode de démarrage, ajoutez le owin appSetting: AppStartup avec le nom complet de la classe de démarrage ou de la méthode de configuration dans votre fichier web.config.

J'ai essayé de chercher toute la solution pour la chaîne "MyFirstProject2" mais je n'ai rien trouvé. Le message contient quelques suggestions, mais aucune d’entre elles ne signifie rien pour moi. Je ne sais pas comment "supprimer ou renommer l'un des attributs, ou référencer directement le type souhaité", et je ne vois pas de lieu dans le fichier Web.config pour "ajouter le owin appSetting: AppStartup avec le démarrage qualifié complet nom de la classe ou de la méthode de configuration dans votre web.config ".

J'ai trouvé ceci , mais je ne sais pas trop comment le mettre en œuvre. J'ai également trouvé [Assembly: OwinStartupAttribute(typeof(Gators3.Startup))] dans mon Startup.cs, mais je ne suis pas sûr de savoir ce qu'il convient de faire.

29
abalter

Le problème est que Gators3.dll et MyFirstProject2.dll sont dans le même dossier (je suppose que c'est un dossier bin sur votre serveur) et qu'ils utilisent tous deux le middleware Owin. Si vous n'avez pas besoin de MyFirstProject2.dll, le moyen le plus simple consiste à supprimer cet assemblage. Si vous en avez besoin, mais sans Owin, ajoutez la ligne suivante à Web.config/app.config dans votre projet MyFirstProject2: <add key="owin:AutomaticAppStartup" value="False" />

Si vous devez utiliser Owin pour deux projets, configurez des noms conviviaux pour les deux.

  • Projet Gators3:

Changez l'attribut de démarrage Owin en quelque chose comme:

 attribute [Assembly: OwinStartupAttribute("GatorsConfig", typeof(Gators3.Startup))]

Et ajoutez la ligne suivante à Web.config dans la section appSettings:

   <add key="owin:appStartup" value="GatorsConfig" /> 
  • Projet MyFirstProject2:

Remplacez l’attribut de démarrage Owin par quelque chose comme:

   attribute [Assembly: OwinStartupAttribute("MyFirstProject2Config", typeof(MyFirstProject2.Startup))]

Et ajoutez la ligne suivante à Web.config dans la section appSettings:

   <add key="owin:appStartup" value="MyFirstProject2Config" />
56
LaoR

J'ai eu le même problème: tout supprimer dans le dossier bin et reconstruire la solution à lui seul a fonctionné pour moi. Mais il peut être combiné au changement de nom de votre attribut Assembly en haut de la classe startup, lui donnant un nom Firendly qui aidera à différencier les deux fichiers de démarrage.

[Assembly: OwinStartup("MyFriendlyNameForProject1",typeof(MyProject.Startup))]
19
Nishanth Shaan

Effacez votre dossier bin et votre dossier obj. Recréez à nouveau le projet et exécutez-le :)

13

Supprimez tout ce qui est "MyFirstProject2" de votre dossier bin et reconstruisez la solution, cela fonctionnera.

4

De même, si vous publiez une solution pour Azure:

1) Faites un clic droit et sélectionnez Publier.
2) allez dans Paramètres et développez les "Options de publication des fichiers"
3) sélectionnez "Supprimer les fichiers supplémentaires à la destination"
4) Publier

Travaillé pour moi, après avoir supprimé les fichiers de obj et bin Folder.

3
Michael Staples

J'ai eu le même problème et j'ai ajouté le tag suivant sur web config:

<appSettings>
    <add key="owin:AutomaticAppStartup" value="false" />
</appSettings>
3
Võ Đại Thắng

Cela se produit lorsque vous faites référence (par erreur?) À un projet avec owin startup dans un autre projet avec owin startup. Fix - Supprimez les dossiers reference, bin, obj et reconstruisez.

2
Nick Kovalsky

Voici ce que j'ai fait:

  1. Comme j'ai 3 projets dans une solution, je devais ouvrir tous les dossiers bin de chaque projet et y supprimer tous les fichiers.

  2. Construisez chaque projet un par un.

  3. Construisez la solution entière.

Le problème est résolu de ma part.

1
Willy David Jr

Supprimer les anciennes données générées dans les fichiers temporaires, dans le chemin suivant

C:\Users\[user]\AppData\Local\Temp\Temporary ASP.NET Files\vs
0
mosi98

Supprimer les fichiers Bin, Construisez chaque projet un par un. 

0
Jimmy Santillan

Tout supprimé du dossier bin, y compris le dossier roslyn publié, et tout a bien fonctionné.

0
George Williams