2015-07-27 16 views
18

Mvc 5, Owin'e bağlı gibi gözüküyor. Ancak, sadece önceki sürümlerde olduğu gibi IIS altında çalışmayı istediğimi ve Owin'in sunabileceği şeyle ilgilenmediğimi varsayalım. Varsayılan "boş" mvc5 şablonu owin ve 15 diğer bağımlılığı kullanır. Paketleri tek tek kaldırmayı denedim, ancak site Owin'den bir özellik kullanmadan nasıl başlayacağını bilmiyormuş gibi görünüyor. Öyleyse, Owin olmadan sadece ASP.net, mvc 5, iis altında nasıl alabilirim?Asp.Net MVC 5 Owin olmadan mı?

+0

Sorunuz "Asp.Net vNext framework'ü olmadan Asp.Net MVC 5'i nasıl çalıştırırım" şeklindedir. – Aron

+2

@Aron Onsuz artık Asp.Net'in ayrılmaz bir parçasıdır ve onsuz kullanılamaz, hayır, bu benim sorum değil. – Andy

cevap

30

kolay yolu web.config dosyada olup <appSettings> bölümünde bu ekleyin:

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

projenizde ve Manage Nuget Packages menü tıklamadan Owin tamamen sağ tıklayın kaldırın. Manage Nuget Packages penceresinin sol tarafındaki Installed Package penceresine tıklayın ve daha sonra pencerenin sağ tarafındaki arama kutusuna owin yazın.

  • microsoft.aspnet.identity.owin
  • microsoft.owin.host.systemweb
  • microsoft.owin.security.cookies
  • microsoft: sırasına göre

    enter image description here kaldırma paketler. owin.security.facebook

  • microsoft.owin.security.google
  • microsoft.owin.securit y.microsoftaccount
  • microsoft.owin.security.twitter

ve otomatik olarak kaldırılır microsoft.owin.security.twitter diğer Owin paketleri çıkarıyoruz ve makinenizde oldu yoksa başınıza diğerlerini kaldırdıktan sonra. sonra kaldırmak bu paketler:

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

Açık web.config dosyası ve <runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> gelen bu bölümleri kaldırın:

<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> 

Projenin kök dizinindeki Startup.cs dosyasını kaldırın. App_Start folder'u açın ve IdentityConfig.cs ve Startup.Auth.cs dosyalarını kaldırın.Controller folder'u açın ve AccountController.cs ve ManageController.cs'u kaldırın. Models folder içinde tüm Modelleri sil ve View Folder Kaldır Account Folder ve Manage folder.

Visual Studio'yu yeniden başlatır ve bundan sonra projeyi çalıştırır. Bu hatayı alırsanız:

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. Açık bin folder ve herhangi Owin assembly varsa, onları
  2. Veya <appSettings> bölümünde açık web.config tümünü silmek sonra bu <add key="owin:AutomaticAppStartup" value="false" />
+0

Ah, Sanırım son adımı kaçırıyordum, ekliyor: owin: AutomaticAppStartup. Bunu bir şans vereceğim ve geri bildireceğim. – Andy

1

OWIN, ASP.net uygulamalarını IIS'den ayıran bir standarttır, böylece uygulamalar diğer avantajların yanı sıra kendileri de barındırılabilir, ancak bunları IIS'de barındırabileceğiniz anlamına gelmez.

+1

Bunu biliyorum ama getirilen tüm bağımlılıkları istemiyorum, dolayısıyla sorum (ki bu cevap vermiyor). – Andy

+0

@Andy Hangi bağımlılıkları kaldırmak istiyorsunuz. VNext noktasının bir kısmı, çerçevenin nuget yoluyla getirilmesidir. Asp.net'i kaldırmaya mı çalışıyorsunuz? http://www.hanselman.com/blog/IntroducingASPNETVNext.aspx – Aron

+0

@Aron Hayır, Asp.Net'i kaldırmaya çalışmıyorum, sadece Owin. – Andy

3

Varsayılan mvc5 şablonu üyelik sistemi olarak Kimlik'i kullanır. Kimlik Owin'e bağlıdır, bu yüzden projeye dahil olmasının nedeni (diğer 'isteğe bağlı' paketlerle). Yeni bir boş proje oluşturursanız ve el ile Microsoft.Aspnet.Mvc paketini (Install-Package Microsoft.Aspnet.Mvc komutuyla) yüklerseniz, Owin'de bağımlılık olmadığını görebilirsiniz.

Gözlem: Ayrıca 'Klasör ekle ve MVC için temel başvurular' seçeneği işaretli Boş bir proje de oluşturabilirsiniz. Owin devre dışı bırakmak için

-1

I ekleyin sadece tam rotayı belirtin ve benim için çalışıyor!

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

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