Web サイト管理ツールを使用して、サーバー上の Web サイトのメンバーシップを構成しようとしています。SQL Server のローカル コピーに aspnetdb データベースを作成し、WSAT を使用していくつかの役割を追加し、サーバー上のいくつかのディレクトリをロックダウンしました。
ただし、ユーザーを管理しようとすると、次のエラーが発生します。
接続名 'LocalSqlServer' がアプリケーション構成で見つからなかったか、接続文字列が空です。System.Web.Util.SecUtility.GetConnectionString (NameValueCollection 構成) で System.Web.Security.SqlMembershipProvider.Initialize (文字列名、NameValueCollection 構成) で System.Web.Configuration.ProvidersHelper.InstantiateProvider (ProviderSettings providerSettings、タイプ providerType) で
明らかに、LocalSqlServer 接続文字列は問題ありません。そうしないと、たとえば、ロールを追加できませんでした。
web.config の関連部分は次のとおりです。
<connectionStrings>
<clear />
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=(local);Initial Catalog=aspnetdb;User Id=LoginUser;Password=password;" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" defaultUrl="~/admin/admin.aspx" />
</authentication>
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="LocalSqlServer"
applicationName="myapp" />
</providers>
</membership>
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="myapp" />
</providers>
</profile>
<roleManager enabled="true">
<providers>
<clear />
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="myapp" />
</providers>
</roleManager>
</system.web>
私が理解している限り、Clear/Remove要素は他の構成ファイルをオーバーライドする必要がありますが、関連するmachine.configに同じ接続文字列を追加しようとしましたが、役に立ちませんでした。
何か案は?
別の方法として、Membership DB ストアド プロシージャを直接呼び出すことができない理由はありますか? 誰かがサポート文書を知っていますか?