0

プロジェクト テンプレートから生成された多数のメンバーシップ関連ページを含む ASP.NET MVC アプリケーションがあります。

これらのページの 1 つにアクセスしようとすると、次のエラーが表示されます。

ASP.NET シンプル メンバーシップ データベースを初期化できませんでした。詳細については、 http: //go.microsoft.com/fwlink/?LinkId=256588を参照してください。

調査に時間を費やした後、接続文字列が欠落していると判断しました。という名前の既存の接続文字列がFreeWebFilesEntitiesあり、 という名前の新しい接続文字列を作成DefaultConnectionし、同じ値を指定しました。

<connectionStrings>
    <add name="FreeWebFilesEntities" connectionString="metadata=res://*/FreeWebFilesRepository.csdl|res://*/FreeWebFilesRepository.ssdl|res://*/FreeWebFilesRepository.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.;Initial Catalog=FreeWebFiles;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
    <add name="DefaultConnection" connectionString="metadata=res://*/FreeWebFilesRepository.csdl|res://*/FreeWebFilesRepository.ssdl|res://*/FreeWebFilesRepository.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.;Initial Catalog=FreeWebFiles;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
<connectionStrings>

しかし、これはまだ好きではありません。EF接続文字列を使用していることを示唆するリソースをいくつか見つけました(そして私はそうです)。そのメタデータ セクションを削除しようとしましたが、何をしても例外がスローされます。

マイクロソフトはこのプロセスを非常に慎重に文書化しないことを決定したように見えるので (もしあったとしても)、誰かがこれを理解しましたか? SimpleMembership ページを機能させるにはどうすればよいですか?

4

2 に答える 2

3

まず、EntityClient接続文字列を使用していますが、これは と互換性がありませんSimpleMembershipSimpleMembershipプロバイダー タイプの接続文字列が必要SqlClientです (つまり、メタデータがなく、プロバイダー タイプが ですSqlClient) 。

次に、使用される接続文字列がInitializeSimpleMembershipAttribute.csクラス、特に を呼び出す行に設定されますWebSecurity.InitializeDatabaseConnection。これは好きなように変更できます。DefaultConnection は、machine.config で提供されるデフォルトの接続文字列であり、デフォルトでは web.config には表示されません。

于 2013-06-24T00:30:34.847 に答える
-1

web.config ファイルにこれらのセクションがありますか?

<roleManager enabled="true" defaultProvider="simple">
  <providers>
    <clear/>
    <add name="simple" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
  </providers>
</roleManager>
<membership defaultProvider="simple">
  <providers>
    <clear/>
    <add name="simple" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/>
  </providers>
</membership>
于 2013-06-24T00:30:26.633 に答える