2015-06-05 18 views
23

Ich habe eine ASP.NET-Anwendung, die auf meinem lokalen Computer ordnungsgemäß ausgeführt wird. Ich habe es gerade auf einen Server mit Web-Deploy hochgeladen. Ich erhalte den folgenden Fehler, wenn ich versuche, die Site anzuzeigen:Owin Fehler mit ASP.NET MVC-Anwendung

Die folgenden Fehler traten beim Versuch auf, die App zu laden. - Das in der Assembly 'Gators3' entdeckte OwinStartup-Attribut, das den Starttyp 'Gators3.Startup' referenziert, steht in Konflikt mit dem Attribut in der Assembly 'MyFirstProject2', das auf den Starttyp 'MyFirstProject2.Startup' verweist, da sie den gleichen FriendlyName '' haben. Entfernen oder benennen Sie eines der Attribute um oder verweisen Sie direkt auf den gewünschten Typ. Um die OWIN-Startup-Erkennung zu deaktivieren, fügen Sie in Ihrer web.config die AppSetting owin: AutomaticAppStartup mit dem Wert "false" hinzu. Um die OWIN-Startup-Assembly, -Klasse oder -Methode anzugeben, fügen Sie die appSetting-Anweisung owin: AppStartup mit dem vollständig qualifizierten Startup-Klassen- oder Konfigurationsmethodennamen in Ihrer Datei web.config hinzu.

Ich habe versucht, die gesamte Lösung für die Zeichenfolge "MyFirstProject2" suchen, aber nichts gefunden. Die Nachricht gibt ein paar Vorschläge, aber keine von ihnen bedeutet mir etwas. Ich weiß nicht, wie ich "eines der Attribute entfernen oder umbenennen oder direkt auf den gewünschten Typ verweisen soll" und ich sehe keinen Platz in der Datei "web.config", um die App "setWoin: AppStartup" mit dem vollständig qualifizierten Start hinzuzufügen Name der Klassen- oder Konfigurationsmethode in Ihrer web.config. "

Ich habe this gefunden, bin mir aber nicht sicher, wie ich es implementieren soll. Ich habe auch gefunden [assembly: OwinStartupAttribute(typeof(Gators3.Startup))] in meinem Startup.cs, aber nicht sicher, was das Richtige zu tun ist entweder.

+0

Mögliche Duplikate: http://stackoverflow.com/questions/21701297/error-when-renaming-asp-net-mvc-5-application –

Antwort

49

Das Problem ist, dass die Gators3.dll und MyFirstProject2.dll im selben Ordner sind (ich denke, es ist bin-Ordner auf Ihrem Server) und beide verwenden Owin Middleware. Wenn Sie MyFirstProject2.dll nicht benötigen, ist der einfachste Weg, diese Assembly zu löschen. Wenn Sie es brauchen, aber ohne Owin - in den Web.config/app.config in Ihrem MyFirstProject2 Projekt folgende Zeile: <add key="owin:AutomaticAppStartup" value="False" />

Wenn Sie Owin verwenden müssen für zwei Projekte freundliche Namen für beide konfigurieren.

  • Gators3 Projekt:

ändern Owin Startattribut so etwas wie:

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

Und fügen Sie folgende Zeile im Abschnitt appSettings Web.config:

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

ändern Owin Start Attribut etwas wie:

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

Und fügen Sie folgende Zeile im Abschnitt appSettings Web.config:

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

Ich hatte das gleiche Problem: Entfernen alles im bin-ordner und das umbauen der lösung allein funktionierte für mich.Aber es könnte mit dem Umbenennen Ihres Assembly-Attributs an der Spitze der Klasse startup kombiniert werden, was ihm einen Firendly-Namen geben würde, der helfen würde, beide Startup-Dateien zu unterscheiden.

[assembly: OwinStartup("MyFriendlyNameForProject1",typeof(MyProject.Startup))] 
+4

manuell sicherstellen, dass '/ bin' Ordner gereinigt wird (= löschen Sie alle Dateien), war der Schlüssel zu mir (thx). Das Umbenennen der Assembly, das "Säubern" von VS und das Neuaufbau ist nicht genug, da das Clean nicht über die Legacy-DLLs wissen kann, da diese immer noch den gleichen alten Namen haben –

11

Leeren Sie Ihren Ordner ist und obj folder.Rebuild das Projekt erneut und führt :)

+1

Nur das Löschen des Bin-Ordners half nicht alleine, ich musste auch den obj-ordner löschen. Vielen Dank –

4

alles löscht, die ‚MyFirstProject2‘ aus dem Ordner ist sagen und die Lösung neu zu erstellen, wird es funktionieren.

1

Tritt auf, wenn Sie (aus Versehen?) Ein Projekt mit owin startup in einem anderen Projekt mit owin startup referenzieren. Fix - lösche die Referenz-, Bin-, Obj-Ordner und rebuild.

Verwandte Themen