2015-07-27 7 views
18

एमवीसी 5 ओविन पर निर्भर करता है, अगर आप मैक पर स्वयं होस्ट या रन करना चाहते हैं तो यह बहुत अच्छा है। लेकिन मान लीजिए कि मैं सिर्फ पिछले संस्करणों की तरह आईआईएस के तहत भागना चाहता हूं और मुझे ओविन की पेशकश करने में कोई दिलचस्पी नहीं है। डिफ़ॉल्ट "रिक्त" एमवीसी 5 टेम्पलेट ओविन और 15 अन्य निर्भरताओं का उपयोग करता है। मैंने संकुल को एक-एक करके हटाने का प्रयास किया है, लेकिन ऐसा लगता है कि साइट को पता नहीं था कि ओविन से एक विशेषता का उपयोग किए बिना कैसे शुरू किया जाए। तो, मैं सिर्फ ओएसपी के बिना आईएसआई के तहत एएसपीनेट, एमवीसी 5 कैसे प्राप्त करूं?Asp.Net एमवीसी 5 ओविन के बिना?

+0

आपका प्रश्न "मैं Asp.Net एमवीसी 5 को Asp.Net vNext फ्रेमवर्क के बिना कैसे चला सकता हूं"। – Aron

+2

@Aron Unless Owin अब Asp.Net का एक अभिन्न हिस्सा है और इसके बिना इसका उपयोग नहीं किया जा सकता है, नहीं, यह मेरा प्रश्न नहीं है। – Andy

उत्तर

30

आसान Owin निष्क्रिय करने के लिए जिस तरह से web.config फ़ाइल में है और <appSettings> अनुभाग में इस जोड़ें:

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

अपनी परियोजना पर और Manage Nuget Packages पर मेनू क्लिक से Owin पूरी तरह से राइट क्लिक निकालने के लिए। Manage Nuget Packages विंडो के बाईं तरफ Installed Package पर क्लिक करें फिर खोज बॉक्स प्रकार owin में विंडो के दाहिने तरफ।

  • microsoft.aspnet.identity.owin
  • microsoft.owin.host.systemweb
  • microsoft.owin.security.cookies
  • माइक्रोसॉफ्ट:

    के क्रम में

    enter image description here स्थापना रद्द संकुल। owin.security.facebook

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

और microsoft.owin.security.twitter अन्य Owin अपने आप निकाल दिया संकुल को दूर करने और अगर यह आपकी मशीन पर हुआ नहीं है अपने आप से दूसरों को दूर करने के बाद। तो हटाने इस संकुल:

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

ओपन web.config फ़ाइल और <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> 

प्रोजेक्ट की रूट में Startup.cs फ़ाइल हटाएं। App_Start folder खोलें और IdentityConfig.cs और Startup.Auth.cs फ़ाइलों को हटाएं।Controller folder खोलें और AccountController.cs और ManageController.cs हटाएं। Models folder में सभी मॉडल हटाएं और View Folder में Account Folder और Manage folder हटाएं।

विजुअल स्टूडियो को पुनरारंभ करता है और उसके बाद परियोजना को चलाता है। यदि आप इस त्रुटि मिलती है:

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. ओपन bin folder और अगर वहाँ किसी भी Owin assembly, उन्हें
  2. या <appSettings> खंड में खुला web.config को हटाना तो यह <add key="owin:AutomaticAppStartup" value="false" />
+0

आह, मुझे लगता है कि मैं आखिरी कदम खो रहा था, 'ओविन: स्वचालित ऐप स्टार्टअप' जोड़ रहा था। मैं इसे एक शॉट दूंगा और वापस रिपोर्ट करूंगा। – Andy

1

ओविन एक मानक है, जो आईआईएस से एएसपीनेट ऐप्स को डीक्यूलेट करता है, इस प्रकार ऐप्स को अन्य लाभों के साथ स्वयं होस्ट किया जा सकता है, लेकिन इसका मतलब यह नहीं है कि आप उन्हें आईआईएस में होस्ट नहीं कर सकते हैं।

+1

मुझे पता है, लेकिन मैं नहीं चाहता कि सभी निर्भरताएं लाती हैं, इसलिए मेरा प्रश्न (जो इसका उत्तर नहीं देता है)। – Andy

+0

@ एंडी आप किस निर्भरता को हटाना चाहते हैं। VNext के बिंदु का हिस्सा यह है कि ढांचा nuget के माध्यम से लाया जाता है। क्या आप एएसपीनेट को हटाने की कोशिश कर रहे हैं? http://www.hanselman.com/blog/IntroducingASPNETVNext.aspx – Aron

+0

@Aron No, मैं Asp.Net, बस ओविन को हटाने की कोशिश नहीं कर रहा हूं। – Andy

3

डिफ़ॉल्ट mvc5 टेम्पलेट सदस्यता प्रणाली के रूप में पहचान का उपयोग करता है। पहचान ओविन पर निर्भर करती है, इसलिए इस परियोजना में शामिल होने का कारण है (कई अन्य 'वैकल्पिक' पैकेजों के साथ)। यदि आप एक नया खाली प्रोजेक्ट बनाते हैं और मैन्युअल रूप से पैकेज को Microsoft.Aspnet.Mvc (Install-Package Microsoft.Aspnet.Mvc कमांड के साथ) स्थापित करते हैं तो आप देख सकते हैं कि ओविन पर कोई निर्भरता नहीं है।

ओब्स: आप 'एमवीसी के लिए फ़ोल्डर जोड़ें और कोर संदर्भ' विकल्प के साथ एक खाली परियोजना भी बना सकते हैं।

-1

मैं जोड़ने बस पूरा मार्ग निर्दिष्ट करें और यह मेरे लिए काम करता है !!

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

<add key="owin:AppStartup" value="Users.Web.App_Start.IdentityConfig" /> 
संबंधित मुद्दे