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ı?
cevap
kolay yolu web.config
dosyada olup <appSettings>
bölümünde bu ekleyin:
<add key="owin:AutomaticAppStartup" value="false" />
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
- 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:
- Açık
bin folder
ve herhangiOwin assembly
varsa, onları - Veya
<appSettings>
bölümünde açık web.config tümünü silmek sonra bu<add key="owin:AutomaticAppStartup" value="false" />
Ah, Sanırım son adımı kaçırıyordum, ekliyor: owin: AutomaticAppStartup. Bunu bir şans vereceğim ve geri bildireceğim. – Andy
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.
Bunu biliyorum ama getirilen tüm bağımlılıkları istemiyorum, dolayısıyla sorum (ki bu cevap vermiyor). – Andy
@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
@Aron Hayır, Asp.Net'i kaldırmaya çalışmıyorum, sadece Owin. – Andy
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
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" />
Sorunuz "Asp.Net vNext framework'ü olmadan Asp.Net MVC 5'i nasıl çalıştırırım" şeklindedir. – Aron
@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