20

VS2012 で新しいインターネット プロジェクトを開始し、プロジェクトを少し再構築しようとしていますが、SimpleMemberhsipProvider を機能させ続けることができないようです。基本的に、私が行ったのは、モデル オブジェクトを他のいくつかのアイテムと共にコア プロジェクトに移動したことだけです。Ninject を実装し、リポジトリ パターンを使用してデータを取得することでエンティティを少し抽象化しようとしています。現在のプロジェクトであまり変更されたようには感じませんが、何らかの理由でアプリケーションを起動すると、次のようになります。

{"ロール マネージャー機能が有効になっていません。"}

フレームワークによって提供される ActionFilter は、次の場合にエラーがスローされる場所です。

WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "Id", "UserName", autoCreateTables: true);

と呼ばれます。

スタックトレースの一部を次に示します。

[ProviderException: ロール マネージャー機能が有効になっていません。]
System.Web.Security.Roles.EnsureEnabled() +9561885
System.Web.Security.Roles.get_Provider() +8
WebMatrix.WebData.WebSecurity.InitializeProviders(DatabaseConnectionInfo connect, String userTableName, String userIdColumn, String userNameColumn, Boolean autoCreateTables) +104
WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(String connectionStringName, String userTableName, String userIdColumn, String userNameColumn, Boolean autoCreateTables) +100
InoutBoard.Core.Infrastructure.Filters.SimpleMembershipInitializer.. c:\Users\Kyle\Documents\Visual Studio 2012\Projects\InoutBoard\InoutBoard.Core\Infrastructure\Filters\InitializeSimpleMembershipAttribute.cs:42 の ctor()

[InvalidOperationException: ASP.NET シンプル メンバーシップ データベースを初期化できませんでした。詳細については 、c:\Users\Kyle\Documents\Visual Studio 2012 のhttp://go.microsoft.com/fwlink/?LinkId=256588]
InoutBoard.Core.Infrastructure.Filters.SimpleMembershipInitializer..ctor()を参照してください。 \Projects\InoutBoard\InoutBoard.Core\Infrastructure\Filters\InitializeSimpleMembershipAttribute.cs:46

次のリンクで github でコードをホストしていますhttps://github.com/keroger2k/InoutBoard

4

5 に答える 5

24

最初の方法

スヘアの答えをチェックしてください(現在のスレッドで)。

第二の方法

次のアセンブリを に追加しますweb.config

<system.web>
  <compilation debug="true" targetFramework="4.5">
    <assemblies>
      <add assembly="WebMatrix.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add assembly="WebMatrix.WebData, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </assemblies>
  </compilation>
</system.web>

アップデート

アセンブリには、WebMatrix.WebDataメンバーシップ/ロール プロバイダーを初期化し、RoleManager ( ) を有効にするスタートアップ メソッドが含まれていますPreApplicationStartCode.Start。しかし、ASP.NET は、あなたのケースで実行できるものを見つけることができませんでした。この 2 行のコードを追加することで、ASP.NET にこれらのアセンブリでPreApplicationStartMethodAttribute(s).

于 2012-09-04T07:53:04.880 に答える
10

私のホスティング会社(WinHost.com - 彼らは優れています)でまったく同じエラーが発生しました。

私の解決策は、web.configに追加することでした:

<appSettings>
    <add key="enableSimpleMembership" value="true" />
</appSettings>
于 2012-10-30T16:26:28.833 に答える
10

私の場合のように、他の人がこのエラーを受け取り、上記の解決策が機能しない場合。アセンブリ マークアップを追加しようとすると、子オブジェクトが無効であると表示されました。以下のように、roleManager とメンバーシップ タグを指定する必要がありました。それをしたら、更新データベースが機能しました。

<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
      <providers>
        <clear/>
        <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
      </providers>
    </roleManager>
    <membership defaultProvider="SimpleMembershipProvider">
      <providers>
        <clear/>
        <add name="SimpleMembershipProvider" 
             type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/>
      </providers>
    </membership> 
于 2012-10-19T19:16:26.147 に答える
10

Mehdi Golchin が提案するようにアセンブリを web.config に追加する代わりに、WebMatrix.Data および WebMatrix.WebData のアセンブリ参照を CopyLocal=True に変更することもできます。

于 2013-01-03T22:43:30.657 に答える
0

キーをページとして Web.Config に追加します。

http://devbla.wordpress.com/2013/07/03/corrigindo-o-erro-no-aspnet-the-role-manager-feature-has-not-been-enabled/

[]の

于 2013-07-03T16:27:07.903 に答える