Aucun assembly trouvé contenant une erreur OwinStartupAttribute


87

Cette erreur

Les erreurs suivantes se sont produites lors de la tentative de chargement de l'application. - Aucun assembly trouvé contenant un OwinStartupAttribute. - Le type ou la méthode «false» indiqué n'a pas été trouvé. Essayez de spécifier l'assemblage. Pour désactiver la découverte de démarrage OWIN, ajoutez le paramètre appSetting owin: AutomaticAppStartup avec la valeur "false" dans votre 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 complet de la classe de démarrage ou de la méthode de configuration dans votre web.config.

apparaît sur mon écran sur la page d'erreur la plus horrible jamais créée dans l'histoire.

entrez la description de l'image ici

J'ai essayé de suivre les instructions sur la page en insérant le owin: AutomaticAppStartup dans le fichier config.

 <appSettings >
    <add key="owin:AppStartup" value="false"></add>
        </appSettings>

cela n'a pas résolu le problème. Aucune suggestion?


6
Au lieu de <add key="owin:AppStartup" value="false"></add>pourriez-vous essayer de <add key="owin:AutomaticAppStartup" value="false"></add>voir si cela fonctionne? En outre, quelques liens pour vous aider: OWIN Startup Class Detection et Owin fournissent une classe de démarrage dans web.config (pas de découverte de démarrage automatique)
Keyur PATEL

Cela a fait l'affaire. Merci également pour les ressources. Ma gratitude @KeyurPATEL.
NVA

2
Je pense qu'il vous manque le fichier startup.cs
Kurkula

2
Kurkula a absolument raison. Vous n'avez pas installé le système d'authentification ASP.net juste pour le jeter au démarrage. Il vous manque absolument le fichier startup.cs à la racine du projet. Mettez ce code dans le fichier .------------- en utilisant Microsoft.Owin; en utilisant Owin; [assembly: OwinStartupAttribute (typeof (YOURPROJECT.Startup))] namespace YOURPROJECT {classe partielle publique Startup {public void Configuration (application IAppBuilder) {ConfigureAuth (application); }}}
Paras Parmar

Réponses:


171

Ajoutez ce code web.configsous la <configuration>balise comme indiqué dans l'image ci-dessous. Votre erreur devrait alors disparaître.

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

Vérifiez l'image ci-dessous


4
C'est la solution, ou du moins cette solution a résolu mon problème. Veuillez marquer une réponse comme solution. Celui-ci devrait être au sommet ...
Mason

1
Merci, cela a fonctionné, mais quelqu'un peut-il me dire ce que je perds en définissant la valeur de ce paramètre sur false?
IKriKan

83

Je voulais me débarrasser de OWIN dans le projet:

  1. Supprimer les références OWIN et les packages Nuget du projet
  2. Projet Clean & Rebuild
  3. Lancer l'application

Ensuite, j'ai eu une erreur OWIN. Ces étapes n'ont pas fonctionné, car OWIN.dll était toujours dans le répertoire bin / .

RÉPARER:

  1. Supprimer le bac / répertoire manuellement
  2. Projet de reconstruction

12
lol - la suppression des dossiers bin et obj est toujours le correctif pour les erreurs de dépendance étranges
matt.fc

4
J'avais précédemment téléchargé et essayé le nuget SignalR, qui à son tour avait ajouté le nuget owin. Les paquets ont été supprimés, mais j'ai également dû supprimer le dossier bin pour le faire fonctionner.
mortb

Je suis venu ici après avoir installé SignalR et abandonné l'effort. Merci.
John Gerdsen

Facile et rapide. A travaillé pour moi
Dash

désinstaller le paquet owin aidera également ou supprimer toutes les dll ayant owin avec eux des références aidera
Heemanshu Bhalla

23

Pour ceux qui veulent que owin commence, <add key="owin:AutomaticAppStartup" value="false" />cela ne fonctionnera pas, mais ce qui suit a fonctionné pour moi.

  1. si vous avez une classe partielle «Startup» dans votre fichier Startup.Auth, créez une autre classe de démarrage partielle à la racine de votre projet.

  2. définir un attribut d'assembly owinstartup pointant vers cette classe

  3. créer une méthode "Configuration"

  4. reconstruisez votre application

Vous pouvez également créer la méthode "Configuration" et ajouter l'attribut d'assembly à Startup.Auth, mais cela vous permet de garder votre classe Startup séparée en tirant parti du fractionnement de la définition de classe C #. En savoir plus ici: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods

Voici à quoi ressemblait mon fichier Startup.cs:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(ProjectNameSpace.Startup))]

namespace ProjectNameSpace
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

Cela a fonctionné pour moi, j'ai réalisé que cela se produisait lorsque le projet avait un point dans son nom. Donc, si l'espace de noms ressemble à "namespace ProjectNameSpace.ApiRest", la définition d'un assembly comme dans votre exemple résout le problème.
karique


6

vous n'avez peut-être pas de méthode de configuration dans la classe que vous avez mentionnée dans

<appSettings>
<add key="owin:AppStartup" value="WebApplication1.App_Start.Startup"/>


3

J'ai eu cette erreur car il y avait un espace blanc supplémentaire dans le code

Au lieu de

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

C'était

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


3

Vérifiez si vous avez créé la classe Startup dans votre projet. Ceci est un exemple:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof({project_name}.Startup))]

namespace AuctionPortal
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

Pour profiter de l'identité ASP.net. Telle est la solution.
Paras Parmar

2

juste remplacer

        using (WebApp.Start(url))

avec

        using (WebApp.Start<Startup>(url))

résolu mon problème. La classe nommée Startup était déjà implémentée. comme mentionné ci-dessus par @robthedev


2

Ajouter la clé suivante dans Web.config supprimera le code

<appSettings>

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

1

Vérifiez que vous avez sélectionné le bon projet de démarrage. J'avais un projet d'API Web en tant que startup. Cela a généré cette erreur.


1

Je sais que ce message est ancien, mais juste au cas où quelqu'un recherche la même erreur, essayez d'ajouter

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

après le tag <appSettings>

et si ensuite l'erreur suivante apparaît:

Erreur HTTP 401.0 - Message d'erreur non autorisé

ajouter le code suivant après la balise <system.web>il peut être au début

<authentication mode="Forms"> <forms loginUrl="~/YourFolderName/yourFileName" timeout="1" /> </authentication>

Dans mon cas est:

<authentication mode="Forms"> <forms loginUrl="~/Login/Index" timeout="1" /> </authentication>


0

J'ai supprimé toutes les DLL de la branche qui ne fonctionnaient pas, puis j'ai copié tous les DDls de ma branche qui fonctionnaient dans ma branche qui ne fonctionnait pas. Cela a résolu le problème.


0

collez simplement ce code <add key="owin:AutomaticAppStartup" value="false" /> dans Web.config Pas dans web.config il y a deux webconfig alors assurez-vous qu'il sera collé dans Web.Config


0

si vous souhaitez utiliser signalr, vous devez ajouter la classe startup.cs dans votre projet

Faites un clic droit dans votre projet, puis ajoutez un nouvel élément et sélectionnez la classe de démarrage OWIN

puis à l'intérieur de la méthode de configuration Ajouter le code ci-dessous

app.MapSignalR();

J'espère que cela vous sera utile


0

Ajouter la classe Startup.cs à la racine du projet avec le code suivant:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(ProjectName.Startup))]
namespace ProjectName
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

0

Si vous déployez sur Azure et que vous obtenez cette erreur. Supprimez simplement tous les fichiers du site (sauvegardez tout fichier web.config, appsettings.json ou tout ce que vous ne voulez pas perdre) et déployez à nouveau. Il reste des fichiers dll qui ne devraient pas être sur le site, ce qui fait que le portail Azure pense qu'il doit utiliser OWIN.


0

Ajoutez le code ci-dessous à votre fichier web.config puis exécutez le projet ...

    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    </runtime>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.