2016-04-05 29 views
2

EF7を使用してローカルデータベースにアクセスする新しいasp.netコアアプリケーションを作成しようとしていますが、接続文字列に問題があります。私は、ローカルDBサービスをインストールしていると私はすでにいくつかのインスタンスを作成している:EF7:ローカルデータベースに接続中にエラーが発生しました

PS C:\Users\luisabreu> sqllocaldb info 
MSSQLLocalDB 
ProjectsV12 
ProjectsV13 
v11.0 

MSSQLLocalDBはV12を実行している:

PS C:\Users\luisabreu> sqllocaldb info mssqllocaldb 
Name:    MSSQLLocalDB 
Version:   12.0.2000.8 
Shared name: 
Owner:    GRM\luisabreu 
Auto-create:  Yes 
State:    Running 
Last start time: 05/04/2016 08:46:17 
Instance pipe name: np:\\.\pipe\LOCALDB#518FD662\tsql\query 

これは、私はEFに渡している接続文字列です:

"usersCnnString": "Server=(localdb)\\mssqllocaldb;Database=UsersInfo;Trusted_Connection=True" 
{ 
    "usersCnnString": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=UsersInfo;Integrated Security=True" 
} 

ところで、私はすでにあまりにもこれを試してみました私は「

System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. Specified LocalDB instance name is invalid.) 

:私は、データベースにアクセスしようとするたびに、私は次のエラーで終わる

services.AddEntityFramework() 
      .AddSqlServer() 
      .AddDbContext<UsersContext>(options => options.UseSqlServer(Configuration["usersCnnString"])); 

:0

そして、ここでは、私はEDの依存関係を設定するために使用しているセットアップコードです確かに何か間違っているが、何?

ありがとうございました! ルイス

+0

ここでは 'Configuration [" usersCnnString "]'は正しいことですか?それがどんな価値をもたらしますか?あなたの設定ファイル全体を見ることなく伝えるのは難しいですが、プロパティは通常 'TopLevel:NextLevel:connection-string-name'のように見えます。 – DavidG

答えて

0

私はプロジェクトテンプレートは、このような接続文字列を生成RC1とVS 2015使用してユーザーアカウントを持つプロジェクトを作成する場合:

{ 
    "Server=(localdb)\\mssqllocaldb;Database=thedbnamehere;Trusted_Connection=True;MultipleActiveResultSets=true" 
} 

私が近づくと、それを作ってみてください、だけでなく、ためにならば疑問に思うでしょうUsersInfoは有効な名前ではないかもしれないいくつかの理由は、いくつかのキーワード衝突

私はVSはdbnameのようproject.jsonから「userSecretsId」を使用していることに気づいたかもしれない、わからないことが必要とされますが、試してみる価値があると思われるとき

2

さて、それはもっと簡単だった...あなたがアプリケーションを再実行するときに正しい設定データを取得するようにASP.NETコアアプリケーションの設定を変更するたびにiis expressを抹消することを忘れないでください。

Server=(localdb)\\mssqllocaldb... 

JSONファイルに、VS 2015は自動的にそれを回す、文字列をエスケープ:

Server=(localdb)\\\\mssqllocaldb... 

はい、私はそれを気づいたが、唯一の問題は、私はパスを貼り付けたときにということでしたブラウザでアプリケーションを読み込もうとした後私はその道を訂正しましたが、私のアプリをテストするために使っていたIIS Expressインスタンスを削除しませんでした。だから、古いパス(localdbサーバー上で動作しているmssqllocaldbインスタンスに到達しようとしていた)をまだ使用していたので、エラーメッセージは絶対に正しいものでした。

再び、愚かなエラーです。私の間違いが将来他の誰かの30分を節約できると願っています。

+0

これに追加します。私はここで、Server Explorerの(localdb)\ mssqllocaldbの代わりに(localdb)\\ mssqllocaldbに接続しようとしました。多分誰かがこれによって助けられるでしょう。 – Edza

関連する問題