web-dev-qa-db-ja.com

SQL Server 2012へのMVC 4接続文字列

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:

私が見つけた解決策については、以下の私の答えを参照してください。

22
lhan

情報をありがとうVS 2012がMVC 4に使用する新しいSimple Membershipを説明するこの記事に出会いました。新しいデータベース、新しいMVC 4プロジェクトを作成し、記事の指示に従ってください。案の定、Webページで「登録」するだけでデータベースにテーブルが作成され、ユーザー情報が保存されました。

1
lhan

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;

リファレンス- http://www.connectionstrings.com/sql-server-2012

12
Parag Meshram

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;"
2
manuel

Configでロールマネージャーを有効にする必要がある場合があります

<roleManager enabled="true"/>
2
Prabhu Murthy

Lhan16の答えは助けになりましたが、追加する必要があるのはDefaultConnectionだけであると言う方が簡単でした。私は同じ場所から始めましたが、MVCが使用するデータベース接続はセキュリティフレームワークでは機能しません。フレームワークの作成者は、DefaultConnectionを使用しないとは想像していませんでした。

1
Glenn Gordon