Es wurde keine Assembly gefunden, die einen OwinStartupAttribute-Fehler enthält


87

Dieser Fehler

Die folgenden Fehler sind beim Laden der App aufgetreten. - Es wurde keine Assembly gefunden, die ein OwinStartupAttribute enthält. - Der angegebene Typ oder die angegebene Methode 'false' wurde nicht gefunden. Versuchen Sie, die Baugruppe anzugeben. Um die OWIN-Starterkennung zu deaktivieren, fügen Sie in Ihrer web.config die appSetting owin: AutomaticAppStartup mit dem Wert "false" hinzu. Um die OWIN-Startassembly, -Klasse oder -Methode anzugeben, fügen Sie appSetting owin: AppStartup mit dem Namen der vollständig qualifizierten Startklasse oder Konfigurationsmethode in Ihrer web.config hinzu.

erscheint auf meinem Bildschirm auf der brennendsten hässlichen Fehlerseite, die jemals in der Geschichte erstellt wurde.

Geben Sie hier die Bildbeschreibung ein

Ich habe versucht, den Anweisungen auf der Seite zu folgen, indem ich den owin: AutomaticAppStartup in die Konfiguration eingefügt habe.

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

Dies hat das Problem nicht behoben. Irgendwelche Vorschläge?


6
Könnten <add key="owin:AppStartup" value="false"></add>Sie stattdessen versuchen, <add key="owin:AutomaticAppStartup" value="false"></add>herauszufinden, ob das funktioniert? Außerdem einige Links, die helfen sollen: OWIN Startup Class Detection und Owin bieten eine Startklasse in web.config (keine automatische
Starterkennung

Das hat funktioniert. Danke auch für die Ressourcen. Meine Dankbarkeit @KeyurPATEL.
NVA

2
Ich denke, Sie vermissen die Datei
startup.cs

2
Kurkula hat absolut recht. Sie haben das ASP.net-Authentifizierungssystem nicht installiert, um es beim Start wegzuwerfen. Sie vermissen absolut die Datei startup.cs im Stammverzeichnis des Projekts. Fügen Sie diesen Code mit Microsoft.Owin in die Datei .------------- ein. mit Owin; [Assembly: OwinStartupAttribute (typeof (YOURPROJECT.Startup))] Namespace YOURPROJECT {Start der öffentlichen Teilklasse {Konfiguration der öffentlichen Leere (IAppBuilder-App) {ConfigureAuth (App); }}}
Paras Parmar

Antworten:


171

Fügen Sie diesen Code web.configunter dem <configuration>Tag ein, wie in der Abbildung unten gezeigt. Ihr Fehler sollte dann verschwunden sein.

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

Überprüfen Sie das Bild unten


4
Dies ist die Lösung, oder zumindest hat diese Lösung mein Problem behoben. Bitte markieren Sie eine Antwort als Lösung. Dieser sollte oben sein ...
Mason

1
Danke, das hat funktioniert, aber kann mir jemand sagen, was ich verliere, indem er diesen Einstellungswert auf false setzt?
IKriKan

83

Ich wollte OWIN im Projekt loswerden:

  1. Löschen Sie OWIN-Referenzen und Nuget-Pakete aus dem Projekt
  2. Projekt bereinigen und neu erstellen
  3. App ausführen

Dann habe ich OWIN Fehler bekommen. Diese Schritte haben nicht funktioniert, da sich OWIN.dll noch im Verzeichnis bin / befand .

FIX:

  1. Bin / Verzeichnis manuell löschen
  2. Projekt neu erstellen

12
lol - das Löschen von bin- und obj-Ordnern ist immer die Lösung für seltsame Abhängigkeitsfehler
matt.fc

4
Ich hatte zuvor das SignalR-Nuget heruntergeladen und ausprobiert, das seinerseits das Owin-Nuget hinzugefügt hatte. Die Pakete wurden gelöscht, aber ich musste auch den Ordner bin löschen, damit er funktioniert.
Mortb

Kam hierher, nachdem ich SignalR installiert und das Unternehmen abgebrochen hatte. Vielen Dank.
John Gerdsen

Einfach und schnell. Arbeitete für mich
Dash

Das Deinstallieren des Owin-Pakets hilft ebenfalls, oder das Entfernen aller DLLs, die Owin mit sich führen, aus den Referenzen hilft
Heemanshu Bhalla

23

Für diejenigen, die wollen, dass owin anfängt, <add key="owin:AutomaticAppStartup" value="false" />wird nicht funktionieren, aber das Folgende hat für mich funktioniert.

  1. Wenn Ihre Startup.Auth-Datei eine Teilklasse "Startup" enthält, erstellen Sie eine weitere Teilstartklasse im Stammverzeichnis Ihres Projekts.

  2. Definieren Sie ein Assembly-Attribut owinstartup, das auf diese Klasse verweist

  3. Erstellen Sie eine "Konfigurations" -Methode

  4. Erstellen Sie Ihre Anwendung neu

Sie können auch die Methode "Konfiguration" erstellen und das Assembly-Attribut zum Startup.Auth hinzufügen. Auf diese Weise können Sie jedoch Ihre Startup-Klasse durch Nutzung der Aufteilung der C # -Klassendefinition getrennt halten. Lesen Sie hier mehr: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods

So sah meine Startup.cs-Datei aus:

using Microsoft.Owin;
using Owin;

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

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

Das hat bei mir funktioniert, ich habe festgestellt, dass dies passiert, wenn das Projekt einen Punkt im Namen hat. Wenn der Namespace also "Namespace ProjectNameSpace.ApiRest" ist, beheben Sie das Problem, indem Sie eine Assembly wie in Ihrem Beispiel definieren.
Karique


6

Möglicherweise haben Sie keine Konfigurationsmethode in der Klasse, in der Sie erwähnt haben

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


3

Ich habe diesen Fehler erhalten, weil der Code einen zusätzlichen Leerraum enthält

Anstatt

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

Es war

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


3

Überprüfen Sie, ob Sie die Startup- Klasse in Ihrem Projekt erstellt haben. Dies ist ein Beispiel:

using Microsoft.Owin;
using Owin;

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

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

Zur Nutzung der ASP.net-Identität. Das ist die Lösung.
Paras Parmar

2

nur ersetzen

        using (WebApp.Start(url))

mit

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

löste mein Problem. Die Klasse Startup wurde bereits implementiert. wie oben von @robthedev erwähnt


2

Wenn Sie den folgenden Schlüssel in Web.config hinzufügen, wird der Code entfernt

<appSettings>

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

1

Überprüfen Sie, ob Sie das richtige Startprojekt ausgewählt haben. Ich hatte ein Web-API-Projekt als Startup. Das hat diesen Fehler erzeugt.


1

Ich weiß, dass dieser Beitrag alt ist, aber falls jemand nach dem gleichen Fehler sucht, versuchen Sie es hinzuzufügen

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

nach dem Tag <appSettings>

und wenn danach der nächste Fehler auftaucht:

HTTP-Fehler 401.0 - Nicht autorisierte Fehlermeldung

Fügen Sie den nächsten Code nach dem Tag hinzu <system.web>, der am Anfang stehen kann

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

In meinem Fall ist:

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


0

Ich habe alle DLLs aus dem Zweig gelöscht, der nicht funktionierte, und dann alle DDls aus meinem Zweig, der funktionierte, in meinen Zweig kopiert, der nicht funktionierte. Dies löste das Problem.


0

<add key="owin:AutomaticAppStartup" value="false" /> Fügen Sie diesen Code einfach in Web.config ein. Nicht in web.config gibt es zwei webconfig. Stellen Sie daher sicher, dass er in Web.Config eingefügt wird


0

wenn Sie verwenden möchten signalr Sie add haveto startup.cs Klasse in Ihrem Projekt

Klicken Sie mit der rechten Maustaste in Ihr Projekt, fügen Sie dann ein neues Element hinzu und wählen Sie OWIN-Startklasse aus

dann innerhalb der Konfigurationsmethode Code unten hinzufügen

app.MapSignalR();

Ich hoffe, es wird für Sie nützlich sein


0

Fügen Sie die Klasse Startup.cs mit dem nächsten Code zum Stammverzeichnis des Projekts hinzu:

using Microsoft.Owin;
using Owin;

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

0

Bei der Bereitstellung in Azure wird dieser Fehler angezeigt. Löschen Sie einfach alle Dateien auf der Site (sichern Sie alle web.config, appsettings.json oder was auch immer Sie nicht verlieren möchten) und stellen Sie sie erneut bereit. Es gibt einige übrig gebliebene DLL-Dateien, die sich nicht auf der Site befinden sollten, sodass das Azure-Portal der Meinung ist, dass OWIN verwendet werden muss.


0

Fügen Sie Ihrer web.config-Datei den folgenden Code hinzu und führen Sie das Projekt aus ...

    <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>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.