2015-07-27 17 views
18

Mvc 5 scheint von Owin abhängig zu sein, und es ist großartig, wenn Sie selbst hosten oder auf einem Mac laufen wollen. Aber nehmen wir an, ich möchte nur unter IIS laufen wie die vorherigen Versionen und ich bin nicht daran interessiert, was Owin zu bieten hat. Die standardmäßige "leere" mvc5-Vorlage verwendet owin und 15 weitere Abhängigkeiten. Ich habe versucht, Pakete nacheinander zu entfernen, aber es scheint, als ob die Seite nicht wusste, wie man startet, ohne ein Attribut von Owin zu verwenden. Also, wie bekomme ich nur ASP.net, mvc 5, unter iis ohne Owin?Asp.Net MVC 5 ohne Owin?

+0

Ihre Frage lautet "Wie kann ich Asp.Net MVC 5 ohne das Asp.Net vNext-Framework ausführen". – Aron

+2

@Aron Es sei denn, Owin ist jetzt ein integraler Bestandteil von Asp.Net und kann nicht ohne es verwendet werden, nein, das ist nicht meine Frage. – Andy

Antwort

30

Der einfache Weg Owin zu deaktivieren, ist in web.config Datei und in <appSettings> diesen Abschnitt hinzufügen:

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

Owin ganz rechte Maustaste auf Ihrem Projekt zu entfernen und aus dem Menü klicken Sie auf Manage Nuget Packages. Auf der linken Seite Manage Nuget Packages Fenster klicken Sie auf Installed Package dann auf der rechten Seite des Fensters in Suchfeldtyp owin.

enter image description here Deinstallationspakete in der Reihenfolge:

  • microsoft.aspnet.identity.owin
  • microsoft.owin.host.systemweb
  • microsoft.owin.security.cookies
  • Microsoft. owin.security.facebook
  • microsoft.owin.security.google
  • microsoft.owin.securit y.microsoftaccount
  • microsoft.owin.security.twitter

und nach microsoft.owin.security.twitter anderen owin Pakete entfernt automatisch entfernt wird und wenn es die anderen nicht auf Ihrem Computer selbst passiert nicht entfernt. dann entfernen Sie diese Pakete:

  • microsoft.aspnet.identity.entityframework
  • microsoft.aspnet.identity.core

öffnen web.config Datei, und entfernen Sie diese Abschnitte von <runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">:

<dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 

Entfernen Sie Startup.cs Datei im Stammverzeichnis des Projekts. Öffnen Sie App_Start folder und entfernen Sie die Dateien IdentityConfig.cs und Startup.Auth.cs.Öffnen Sie Controller folder und entfernen Sie AccountController.cs und ManageController.cs. in Models folder Löschen Sie alle Modelle und in View Folder Entfernen Sie Account Folder und Manage folder.

Startet Visual Studio neu und führt anschließend das Projekt aus. wenn Sie diesen Fehler erhalten:

The following errors occurred while attempting to load the app. - No assembly found containing an OwinStartupAttribute. - No assembly found containing a Startup or [AssemblyName].Startup class. To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config. To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config. you have two ways to solve it:

  1. öffnen bin folder und wenn es Owin assembly ist, löschen Sie alle von ihnen
  2. Oder offen web.config in <appSettings> Abschnitt dann hinzufügen, um dieses <add key="owin:AutomaticAppStartup" value="false" />
+0

Ah, ich glaube, ich habe den allerletzten Schritt verpasst und 'owin: AutomaticAppStartup' hinzugefügt. Ich gebe das eine Chance und melde mich zurück. – Andy

1

OWIN ist nur ein Standard, der ASP.net-Apps von IIS entkoppelt. Apps können daher unter anderem gehostet werden, aber es bedeutet nicht, dass sie nicht in IIS gehostet werden können.

+1

Ich weiß das, aber ich will nicht alle Abhängigkeiten, also bringt meine Frage (die das nicht beantwortet). – Andy

+0

@Andy Welche Abhängigkeiten möchten Sie entfernen? Teil von vNext ist, dass das Framework über nuget eingebunden wird. Versuchen Sie, asp.net zu entfernen? http://www.hanselman.com/blog/IntroducingASPNETVNext.aspx – Aron

+0

@Aron Nein, ich versuche nicht, Asp.Net zu entfernen, nur Owin. – Andy

3

Die Standardvorlage mvc5 verwendet Identity als Mitgliedschaftssystem. Die Identität hängt von Owin ab, deshalb ist es im Projekt enthalten (mit mehreren anderen 'optionalen' Paketen). Wenn Sie ein neues leeres Projekt erstellen und manuell das Paket Microsoft.Aspnet.Mvc (mit dem Befehl Install-Package Microsoft.Aspnet.Mvc) installieren, können Sie feststellen, dass keine Abhängigkeit von Owin besteht.

Obs: Sie können auch ein Empty-Projekt mit der Option 'Ordner und Core-Referenzen für MVC hinzufügen' aktivieren.

-1

I Gib einfach die komplette Route an und es funktioniert für mich !!

Project name: Users.Web 
Folders: App_Start 
Class name: IdentityConfig 

<add key="owin:AppStartup" value="Users.Web.App_Start.IdentityConfig" />