3

を使用して Web フォームを作成してvs2012 Expressいます。を使用していASP.NET Membership providerます。
を構成する際sqlmembershipproviderに、データベースで次の SQL バッチを実行しました。

\WINDOWS\Microsoft.NET\Framework\v4.030319\InstallCommon.sql
\WINDOWS\Microsoft.NET\Framework\v4.030319\InstallMembership.sql    

アプリケーションに新しいユーザーを登録しようとすると、次のエラー メッセージが表示されました。

例外の詳細:
System.Data.SqlClient.SqlException: Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'

ソース エラー:

現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。

Stack Trace:


[SqlException (0x80131904): Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +1769462
 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +5318578
.......

スタック オーバーフローに投稿された同様の質問に対するトレースと回答を調べると、2 つsqlbatchesを間違って実行していることに気付きましたdb:A。db:A に同様のテーブルを作成し、Web 構成で接続文字列を変更しました。それは機能db:Bしますが、メンバーシップをインストールしたい場所で作業しています。sqlbatchesこれで同じことを実行するとdb:B、必要なオブジェクトがインストールされません。両方のデータベースが同じサーバー上にあります。
理由と次に何をすべきか知っていましたか?

4

1 に答える 1

6

メンバーシップ プロバイダー データベースを設定する正しい方法は、asp.net reg ツールを実行することです。以下の場所にあります。

"C:\Windows\Microsoft.NET\Framework\<FrameworkVersion>\aspnet_regsql.exe"

詳細情報 http://msdn.microsoft.com/en-us/library/x28wfk74(v=vs.100).aspx

于 2012-12-28T09:51:40.807 に答える