Visual Studio 2012を使用して、C#で新しいMVC 4アプリケーションを作成しました。新しいSQL Server 2012(標準)インスタンスに接続しようとしていますが、接続文字列を正しく設定できないようです。
Web.configからの接続文字列:
<connectionStrings>
<add name="ConnectionStringName"
providerName="System.Data.SqlClient"
connectionString="Data Source=MyServerName;
Initial Catalog=MyDatabaseName;
Integrated Security=False;
User ID=MyUserID;Password=MyPassword;
MultipleActiveResultSets=True" />
</connectionStrings>
Visual Studio内からASP.NET構成にアクセスするたびにページが読み込まれますが、[セキュリティ]をクリックするとすぐに次のメッセージが表示されます。
選択したデータストアに問題があります。これは、無効なサーバー名または資格情報、または不十分な許可が原因である可能性があります。ロールマネージャ機能が有効になっていないことも原因の可能性があります。下のボタンをクリックして、新しいデータストアを選択できるページにリダイレクトします。
次のメッセージは、問題の診断に役立つ場合があります。SQL Serverデータベースに接続できません。
資格情報が正しいことを確認しました(これらを使用してSQL Management Studio経由で接続できます)。他に確認できるものはありますか?私は困惑しています。
UPDATE:
SQL Management Studio(MSSQLSERVER)内から既定のインスタンスに接続できなかったため、SQLを再インストールし、名前付きインスタンス(LHSQLSERVER)を作成しました。これで、SQL Management Studioでそのインスタンスに接続できますが、ASP.NET構成から同じエラーが引き続き発生します。
別の注意点-私が実行したaspnet_regsqlツールは、Framework64\v4.0.30319フォルダーからのものでした。 .NET 4.5を使用している場合、それは正しいですか?
更新2:
接続文字列を、動作することがわかっているリモートサイト(つまり、mysite.winhost.com)への接続文字列に置き換えようとしましたが、ASP.NET Webサイト構成ツールでも同じエラーが発生しますか? FWIW Windows 8も使用していますが、それが問題になるとは思いませんでした。
他に確認できることはありますか?
更新3:
この投稿 は、MVC 4でaspnet_regsqlツールが不要になったことを示しているので、すべての設定を削除してツールを再実行しましたが、再び運がありません。 MVC 4でこれを行った人はいますか?
更新4:
私が見つけた解決策については、以下の私の答えを参照してください。
情報をありがとうVS 2012がMVC 4に使用する新しいSimple Membershipを説明するこの記事に出会いました。新しいデータベース、新しいMVC 4プロジェクトを作成し、記事の指示に従ってください。案の定、Webページで「登録」するだけでデータベースにテーブルが作成され、ユーザー情報が保存されました。
Sql Management Studioを使用して接続できる場合、接続文字列に問題があるはずです-
接続文字列は次の形式を使用しています-
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
User ID=myDomain\myUsername;Password=myPassword;
データソースフィールドでIP Address, Port
を使用してみてください-
<connectionStrings>
<add name="ConnectionStringName"
providerName="System.Data.SqlClient"
connectionString="Data Source=190.190.200.100,1433;
Initial Catalog=MyDatabaseName;
Integrated Security=False;
User ID=MyUserID;Password=MyPassword;
MultipleActiveResultSets=True" />
</connectionStrings>
または、他のバリエーションを試してください-
標準セキュリティ
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
信頼できる接続
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
SQL Serverインスタンスへの接続
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;
Password=myPassword;
sQL 2012を試しませんでしたが、この接続文字列はSQL 2008 R2で正常に機能しました
connectionString="Server=ServerAddress;Database=DataBaseName;User Id=Username;Password=Password;"
または
connectionString="user id=UserName;password=Password;initial catalog=DatabaseName;data source=SQLServerIPorFQDN;Connect Timeout=30;"
Configでロールマネージャーを有効にする必要がある場合があります
<roleManager enabled="true"/>
Lhan16の答えは助けになりましたが、追加する必要があるのはDefaultConnectionだけであると言う方が簡単でした。私は同じ場所から始めましたが、MVCが使用するデータベース接続はセキュリティフレームワークでは機能しません。フレームワークの作成者は、DefaultConnectionを使用しないとは想像していませんでした。