2010-03-25 14 views
27

क्या MySQL डेटाबेस के साथ काम करने के लिए ASP.NET MVC 2 सेट करना संभव है?मैं MySQL के साथ ASP.NET MVC 2 कैसे सेटअप करूं?

+3

ब्लॉगिंग पूरी तरह से ठीक है और एफएक्यू में उल्लिखित है, हालांकि, आपको प्रश्न में अपने प्रश्न पूछने की आवश्यकता है और फिर अपना जवाब उत्तर के रूप में पोस्ट करें। यह लोगों को +/- आपका उत्तर देने और अपने स्वयं के उत्तरों पोस्ट करने की अनुमति देता है। –

+0

अच्छी पोस्ट। मैं कहूंगा कि यह किसी भी एएसपीनेट ऐप पर लागू होता है, न सिर्फ एएसपी.नेट एमवीसी। – Craig

+0

मेरा संपादन लें, पहली पंक्ति के बाद सबकुछ लें और इसे उत्तर के रूप में पोस्ट करें और फिर इसे प्रश्न से हटा दें। इसके अलावा, ऐसा नहीं है क्योंकि उसने SO पर ब्लॉगिंग के दृष्टिकोण को नहीं देखा है, बहुत से नए नियम नियमों के खिलाफ सोचते हैं। उन्हें यह पता चल जाएगा –

उत्तर

36

मुझे लगता है कि आपके पास विजुअल स्टूडियो प्रोफेशनल 2008 है, मेरे पास MySQL सर्वर के उदाहरण तक पहुंच है, और मध्यम से उन्नत विकास अनुभव है। यह वीएस -2008 वेब संस्करण के साथ काम कर सकता है, लेकिन बिल्कुल यकीन नहीं है।

  1. आप नहीं, (इस लेख के समय 6.2.2.0) MySQL Connector for .NET स्थापित किया है, तो
  2. वैकल्पिक: यदि आप नहीं, MVC 2 RTM, या बेहतर अभी तक स्थापित किया है, तो स्थापित MySQL GUI Tools
  3. , माइक्रोसॉफ्ट के Web Platform Installer का उपयोग करें। (अद्यतन: एमवीसी 2 अब कुछ समय के लिए जारी किया गया है)
  4. एक खाली MySQL डेटाबेस बनाएँ। यदि आप MySQL रूट उपयोगकर्ता खाते (असुरक्षित) के साथ अपने एप्लिकेशन तक नहीं पहुंचना चाहते हैं, तो उपयोगकर्ता खाता बनाएं और उपयुक्त विशेषाधिकार असाइन करें (इस लिखने के दायरे के बाहर)।
  5. दृश्य स्टूडियो
  6. MVC 2 एप्लिकेशन में, संदर्भ MySql.Web.dll में एक नया MVC 2 आवेदन बनाएँ। यह या तो आपके जीएसी में होगा, या उस फ़ोल्डर में जो MySQL कनेक्टर इंस्टॉलर इसे रखेगा।
  7. अपने web.config के कनेक्शन तार भाग संशोधित करें:

    <membership defaultProvider="MySqlMembershipProvider"> 
        <providers> 
         <clear/> 
         <add name="MySqlMembershipProvider" 
          type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, 
           Version=6.2.2.0, Culture=neutral, 
           PublicKeyToken=c5687fc88969c44d" 
          connectionStringName="MySqlMembershipConnection" 
          enablePasswordRetrieval="false" 
          enablePasswordReset="true" 
          requiresQuestionAndAnswer="false" 
          requiresUniqueEmail="true" 
          passwordFormat="Hashed" 
          maxInvalidPasswordAttempts="5" 
          minRequiredPasswordLength="6" 
          minRequiredNonalphanumericCharacters="0" 
          passwordAttemptWindow="10" 
          applicationName="/" 
          autogenerateschema="true"/> 
         </providers> 
        </membership> 
    

    9.

    :

    <connectionStrings> 
        <remove name="LocalMySqlServer"/> 
        <add name="MySqlMembershipConnection" 
         connectionString="Data Source=[MySql server host name]; 
              userid=[user]; 
              password=[password]; 
              database=[database name];" 
         providerName="MySql.Data.MySqlClient"/> 
        </connectionStrings> 
    

    8.

    अपने web.config की सदस्यता भाग को संशोधित

    अपने web.config के भूमिका प्रबंधक भाग को संशोधित करें:

    <roleManager enabled="true" defaultProvider="MySqlRoleProvider"> 
        <providers> 
         <clear /> 
         <add connectionStringName="MySqlMembershipConnection" 
          applicationName="/" 
          name="MySqlRoleProvider" 
          type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, 
           Version=6.2.2.0, Culture=neutral, 
           PublicKeyToken=c5687fc88969c44d" 
          autogenerateschema="true"/> 
        </providers> 
        </roleManager> 
    

    10.

    अपने web.config का प्रोफ़ाइल भाग संशोधित करें:

    <profile> 
        <providers> 
         <clear/> 
         <add type="MySql.Web.Security.MySQLProfileProvider, MySql.Web, 
           Version=6.2.2.0, Culture=neutral, 
           PublicKeyToken=c5687fc88969c44d" 
          name="MySqlProfileProvider" 
          applicationName="/" 
          connectionStringName="MySqlMembershipConnection" 
          autogenerateschema="true"/> 
        </providers> 
        </profile> 
    

इस बिंदु पर, आप एएसपी अनुप्रयोग चलाने और डिफ़ॉल्ट के लिए सक्षम होना चाहिए .NET MVC 2 होम पेज आपके ब्राउज़र में आया है। हालांकि, पहले एएसपी.NET वेब कॉन्फ़िगरेशन टूल (विजुअल स्टूडियो शीर्ष मेनू में: प्रोजेक्ट -> एएसपी.नेट कॉन्फ़िगरेशन) चलाने के लिए एक बेहतर विचार हो सकता है। उपकरण लॉन्च होने के बाद, प्रत्येक टैब को देखें; कोई त्रुटि नहीं = सब अच्छा है।

Nathan Bridgewater's blog पर कॉन्फ़िगरेशन टूल यह काम करने के लिए आवश्यक था। कुडोस, नाथन। पेज के नीचे आधा रास्ता शीर्षक "कॉन्फ़िगरेशन टूल" की तलाश करें।

MySql.web.dll पर सार्वजनिक कुंजी टोकन जिसे मैंने यहां पोस्ट किया है, जल्द ही किसी भी समय नहीं बदला जाना चाहिए। लेकिन यदि आपको सही सार्वजनिक कुंजी टोकन प्राप्त करने के लिए प्रतिलिपि बनाने और चिपकने या किसी भी चीज़ से खराब टोकन स्ट्रिंग पर संदेह है, तो बस चलाने के लिए विजुअल स्टूडियो कमांड लाइन का उपयोग करें: "स्न-टी [पथ \ to \ your.dll]"।

वहां आपके पास है, एएसपी.नेट एमवीसी 2 MySQL पर चल रहा है। चीयर्स!

+1

धन्यवाद नोवाजो! मैंने हाल ही में इस टूल को अपने पृष्ठ पर कॉपी करना आसान बनाने के लिए कॉपी किया है। http://www.integratedwebsystems.com/tools-source/ – Nathan

+0

नोइस! और धन्यवाद, मेरे दोस्त। यह एक उग्र लड़ाई थी और आपके उपकरण ने इसे संभव बना दिया। जीत के लिए नाथन! – NovaJoe

+2

बहुत बढ़िया! मुझे लगता है कि मैं आपको फिर से वोट करने के लिए स्टैक ओवरव्लो पर एक नया खाता बनाउंगा! ;) –

1

मैं "10 पर विश्वास करता हूं। अपने वेब के प्रोफाइल हिस्से को संशोधित करें।config :: "

<profile> 
    <providers>   
    <clear /> ... 
     <add type="MySql.Web.Security.MySQLProfileProvider,...... 

प्रकार = हो गया है: प्रकार =" MySql.Web.Profile.MySQLProfileProvider "

क्योंकि में" MySql.Web.Security "मैं किसी भी विधि नहीं मिला है MySQLProfileProvider।

और कम से कम, आप डेटाबेस तालिका बनाने के लिए अपनी खुद की कक्षाएं बनाने के लिए, कोई तैयार कॉन्फ़िगर किया गया डेटाबेस है तो है। हेराल्ड

(लेकिन संस्करण 6.4.4 का उपयोग कर। .NET 4.0 के लिए)
+0

अच्छा नोट। धन्यवाद एचएल 1234। मैं यह जांच नहीं रहा हूं, लेकिन यह एक टाइपो भी हो सकता है। हालांकि, शायद यह नामस्थान है जो बदल गया है। निश्चित नहीं। – NovaJoe

+1

मुझे इसे बदलने के लिए इस बदलाव को करने की आवश्यकता है। – AverageMarcus

संबंधित मुद्दे