27

MySQLデータベースで動作するようにASP.NETMVC2をセットアップすることは可能ですか?

4

2 に答える 2

36

Visual Studio Professional 2008を使用していて、MySQLサーバーのインスタンスにアクセスでき、中程度から高度な開発経験があることを前提としています。これはVS2008Webエディションで動作する可能性がありますが、まったく確実ではありません。

  1. まだインストールしていない場合は、MySQL Connector for .NET(この記事の執筆時点では6.2.2.0)をインストールしてください。
  2. オプション:MySQLGUIツールをインストールします
  3. まだインストールしていない場合は、MVC 2 RTMをインストールするか、MicrosoftのWebプラットフォームインストーラーを使用してください。(更新: MVC 2はかなり前からリリースされています)
  4. 空のMySQLデータベースを作成します。MySQLルートユーザーアカウント(安全でない)を使用してアプリケーションにアクセスしたくない場合は、ユーザーアカウントを作成し、適切な特権を割り当てます(この記事の範囲外)。
  5. VisualStudioで新しいMVC2アプリケーションを作成します
  6. MVC 2アプリで、MySql.Web.dllを参照します。これは、GACか、MySQLConnectorインストーラーが配置したフォルダーにあります。
  7. web.configの接続文字列部分を変更します。

      <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.8。

    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.9。

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

この時点で、アプリを実行して、既定のASP.NETMVC2ホームページをブラウザーに表示できるようになっているはずです。ただし、最初にASP.NET Web構成ツールを実行することをお勧めします(Visual Studioのトップメニュー:[プロジェクト]-> [ASP.NET構成])。ツールが起動したら、各タブを確認します。エラーなし=すべて良好。

Nathan Bridgewaterのブログにある構成ツールは、これを機能させるために不可欠でした。賞賛、ネイサン。ページの途中にある「構成ツール」の見出しを探します。

私がここに投稿したMySql.web.dllの公開鍵トークンは、すぐには変更されないはずです。ただし、コピーアンドペーストなどで不正なトークン文字列が疑われる場合は、VisualStudioコマンドラインを使用して「sn-T[Path\ to \ your.dll]」を実行し、正しい公開鍵トークンを取得します。

これで、MySQL上で実行されているASP.NETMVC2ができました。乾杯!

于 2010-03-25T18:28:26.010 に答える
1

私は「10. web.config のプロファイル部分を変更します::」と信じています。

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

type= である必要があります: type="MySql.Web.Profile.MySQLProfileProvider"

「MySql.Web.Security」でMySQLProfileProviderメソッドが見つからないためです。(ただし、.NET 4.0 ではバージョン 6.4.4 を使用)

少なくとも、構成済みのデータベースがない場合は、データベース テーブルを作成するための独自のクラスを作成する必要があります。ハラルド

于 2011-11-02T21:04:28.733 に答える