2015-01-15 45 views
8

私はEntity Framework 6.1.1とMySQL 6.9.5.0を使用するASP.NET MVC 4 Web APIプロジェクトを持っています。私はDHC、AccountControllerでInnerException:テーブル 'xxx.aspnetusers'が存在しません

IdentityResult result = await UserManager.CreateAsync(user, model.Password); 

でコードブレークを使用して/ API /アカウント/登録を呼び出すと、私はここで

Table 'xxx.aspnetusers' doesn't exist 

は私のweb.configファイル

の作品ですと言うのInnerExceptionを取得すると
<connectionStrings> 
<add name="ClockitDb" connectionString="Data Source=ClockitDb;port=3306;Initial Catalog=ClockitDb;Server=localhost;user id=root;password=m916600026;" 
    providerName="MySql.Data.MySqlClient" /> 
</connectionStrings> 

<!-- Some code--> 

<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6"> 
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/> 
<providers> 
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> 
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
</providers> 
</entityFramework> 

<!-- Some code--> 

<system.web> 

<authentication mode="Forms" /> 
<compilation debug="true" targetFramework="4.5" /> 
<httpRuntime targetFramework="4.5" /> 
<membership defaultProvider="MySQLMembershipProvider"> 
    <providers> 
    <remove name="MySQLMembershipProvider" /> 
    <add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Clear" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" /> 
    </providers> 
</membership> 
<profile defaultProvider="MySQLProfileProvider"> 
    <providers> 
    <remove name="MySQLProfileProvider" /> 
    <add name="MySQLProfileProvider" type="MySql.Web.Profile.MySQLProfileProvider, MySql.Web, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" /> 
    </providers> 
</profile> 
<roleManager defaultProvider="MySQLRoleProvider"> 
    <providers> 
    <remove name="MySQLRoleProvider" /> 
    <add name="MySQLRoleProvider" type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" /> 
    </providers> 
</roleManager> 
<siteMap defaultProvider="MySqlSiteMapProvider"> 
    <providers> 
    <remove name="MySqlSiteMapProvider" /> 
    <add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" /> 
    </providers> 
</siteMap> 
<webParts> 

<personalization defaultProvider="MySQLPersonalizationProvider"> 
    <providers> 
     <remove name="MySQLPersonalizationProvider" /> 
     <add name="MySQLPersonalizationProvider" type="MySql.Web.Personalization.MySqlPersonalizationProvider, MySql.Web, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" /> 
    </providers> 
    </personalization> 
</webParts> 

<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6"> 
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
<providers> 
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> 
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
</providers> 

+1

MySQLデータベースにIDインフラストラクチャ用のテーブルとストアドプロシージャを作成しましたか? – tvanfosson

+2

次の表は、APIを初めて呼び出すとすぐにSQLで自動的に生成されます。 AspNetRoles、 AspNetUserClaims、 AspNetLogins、 AspNetRoles、 AspNetUsers。 MySQLと同じではありませんか? –

+0

私はまだ 'InitializeSimpleMembershipAttribute'を使う必要があり、おそらく他の設定をする必要があると思います。 http://dev.mysql.com/doc/connector-net/en/connector-net-simple-membership-tutorial-creating.html – tvanfosson

答えて

1

aspnetusersがデータベースに存在しないという例外があります。しかし、より多くの発見で、私はあなたがasp.netフォーラムからこの回答を通過したいと思います。役割、メンバシッププロバイダ、asp.net [全体asp.netスタック/ WEBAPIが含ま] MySQLで、あなたが持っている必要がありますについては

http://forums.asp.net/t/1977214.aspx?Mvc+5+Identity+Error+Invalid+object+name+dbo+AspNetUsers

その場所でのMySQLに固有のプロバイダ。これについては、 http://www.codeproject.com/Articles/117157/Setting-up-MySql-Membership-with-Visual-Studio

これが問題を解決する場合はお知らせください。

-1

私は

http://www.codeproject.com/Articles/117157/Setting-up-MySql-Membership-with-Visual-Studioの指示に従って試してみました。

私はASPのWebサイト管理ツールの[セキュリティ]タブを起動すると、私は、Web configに

The pre-application start initialization method Start on type WebMatrix.WebData.PreApplicationStartCode threw an exception with the following error message: Could not load file or assembly 'MySql.Data, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) (C:\Users\Jaseem Abbas\Documents\Visual Studio 2013\Projects\MySQLSample1\MySQLSample1\web.config line 33). 

マイライン33は、私は正確に同じ問題を抱えていた

<membership defaultProvider="MySQLMembershipProvider"> 
    <providers> 
    <add name="MySQLMembershipProvider" 
     type="MySql.Web.Security.MySQLMembershipProvider, 
     MySql.Web, Version=6.9.5.0, 
     Culture=neutral, 
     PublicKeyToken=c5687fc88969c44d" 
     connectionStringName="LocalMySqlServer" 
     enablePasswordRetrieval="false" 
     enablePasswordReset="true" 
     requiresQuestionAndAnswer="false" 
     requiresUniqueEmail="true" 
     passwordFormat="Hashed" 
     maxInvalidPasswordAttempts="5" 
     minRequiredPasswordLength="6" 
     minRequiredNonalphanumericCharacters="0" 
     passwordAttemptWindow="10" 
     applicationName="/" 
     autogenerateschema="true" /> 
    </providers> 
</membership> 
<profile>ASP 
    <providers> 
    <clear /> 
    <add type="MySql.Web.Security.MySQLProfileProvider, 
     MySql.Web, Version=6.9.5.0, 
     Culture=neutral, 
     PublicKeyToken=c5687fc88969c44d" 
     name="MySqlProfileProvider" 
     applicationName="/" 
     connectionStringName="LocalMySqlServer" 
     autogenerateschema="true" /> 
    </providers> 
</profile> 
<roleManager enabled="true" defaultProvider="MySqlRoleProvider"> 
    <providers> 
    <clear /> 
    <add connectionStringName="LocalMySqlServer" 
     applicationName="/" 
     name="MySqlRoleProvider" 
     type="MySql.Web.Security.MySQLRoleProvider, 
     MySql.Web, Version=6.9.5.0, 
     Culture=neutral, 
     PublicKeyToken=c5687fc88969c44d" 
     autogenerateschema="true" /> 
    </providers> 
+0

参照フォルダに「MySql.Data」アセンブリがあるかどうか確認してください。 。それがある場合は、バージョンを確認し、web.configのバージョンと一致させてください。お役に立てれば。 – ATechieThought

3

として始まりというエラーを取得します。 は、私は次のチュートリアルに続き、それが How to set up application using ASP.NET Identity with MySQL Provider

を働いたことは、それ以外の場合は、同じエラーを与え、あなたも、移行のセットアップチュートリアル、すべての手順を実行することが重要です。

+0

試してみましょう! –

+1

これは実行されますが、メンバーシップおよびプロファイルテーブルは作成されません。 – Quan

関連する問題