自宅のコンピューターで、ASP.NETWebサイトプロジェクトに取り組んでいます。これには、SQLServer2012データベースが付属しています。
このプロジェクトをラップトップに転送しようとしています。ラップトップでデータベースを正常に復元し、ASP.NET Webサイトプロジェクト(web.configファイル)の接続エラーを修正しました。
私のデータベースでは、aspnetdbを統合して、ユーザー/ロール/メンバーシップを他のテーブルと一緒に処理しています。残念ながら、データベース全体をラップトップに転送した後、役割は削除されたようですが、ユーザーは削除されていないようです。したがって、ユーザーが私のasp.netWebサイトにログインしようとすると問題が発生します。
asp.net Webサイト管理ツールをロードしましたが、予想どおり、3人のユーザーと0人の役割があります。私のデータベースは非常に大きいので、ロールを再作成するつもりでした。不思議なことに、転送によって役割が削除されるだけで、ユーザーは削除されませんでした。ただし、[ロールの作成または管理]をクリックすると、エラーが発生します。このツールを使用して新しいユーザーを作成しようとすると、同じことが発生します。
エラー:
エラーが発生しました。前のページに戻って、もう一度やり直してください。
次のメッセージは、問題の診断に役立つ場合があります。SQLServerへの接続の確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、およびSQLServerがリモート接続を許可するように構成されていることを確認してください。(プロバイダー:SQLネットワークインターフェイス、エラー:26-指定されたサーバー/インスタンスの検索エラー)ASP.security_roles_manageallroles_aspxのSystem.Web.Administration.WebAdminPage.CallWebAdminHelperMethod(Boolean isMembership、String methodName、Object [] parameters、Type [] paramTypes) BindGrid()at ASP.security_roles_manageallroles_aspx.Page_Load()at System.Web.Util.CalliHelper.ArglessFunctionCaller(IntPtr fp、Object o)at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender、EventArgs e)atSystem.Web。 UI.Control。
問題は、asp.net Webサイトプロジェクトフォルダーをラップトップに転送することにあり、asp.net Webサイト管理ツールがSQLサーバーインスタンスを認識できないため、新しいSQLサーバーインスタンスと一致するようにこれを更新する必要があると思います。
どうすれば問題を解決できますか?
アップデート:
ホームマシンのデータベースを確認したところ、興味深いことに、aspnet_rolesテーブルにデータが保存されていません。ただし、aspnet_usersテーブルに保存されているユーザーがいます。では、なぜそのテーブルにロールを保存しないのですか?:/
そのテーブルにロールが格納されていない場合、私は少し混乱しています..どこにロールを格納しますか?
アップデート2
ロールがapp_dataフォルダーのASPNETDBに保存されており、SQLサーバーに接続しているデータベースではないことに気づきました。これがSQLサーバーに追加されるために使用されるため、これがどのように発生したのかわかりません。aspnetdbテーブルとデータをsqlデータベースに転送する方法はありますか?
新しいユーザーを作成してテストを行いました。新しいユーザーは、私が持っている私のsqlデータベースに保存されます。しかし、それはaspnetdbに保存されませんが、ロールはaspnetdbに保存されますが、私のsqlデータベースのテーブルには保存されません。
質問:これらを組み合わせて、SQLデータベースのデータのみを更新するにはどうすればよいですか?
アップデート3
ロールとユーザーが2つの差分プロバイダーに格納される問題を修正しました。1つのプロバイダーを指定するだけで済みました。