2017-08-16 14 views
7

dotnetコアとEFコアを搭載したMac用にVisual Studio 2017を使用しています。 Dockerコンテナにmssqlイメージを設定した後、接続文字列を追加しようとしましたが、接続エラーが発生しました。私はIPアドレス、コンテナ名、ホスト名などのさまざまなオプションをサーバ名として試してみましたが、どれも働いていませんでした。コンテナ名、ホスト名とDockerコンテナのsqlserverの接続文字列

"Default": "Server=ecstatic_hermann; Database=ERPDb; User=sa; Password=******;" 

"Default": "Server=172.17.0.2; Database=ERPDb; User=sa; Password =******;" 

"Default": "Server=f45840a59623; Database=ERPDb; User=sa; Password=******;" 

ターミナルでローカルホストを使用して接続している間にその成功し

$ mssql -s localhost -p Technocrat123 
Connecting to localhost...done 

sql-cli version 0.6.2 
Enter ".help" for usage hints. 

を結ぶしかし、アプリケーションシートを実行しているとき接続が失敗します。

ありがとうございました。前もって感謝します。

はlocalhostを使用すると、エラーが

Login failed for user ''. Reason: An attempt to login using SQL authentication failed. Server is configured for Integrated authentication only. 
+0

は、コンテナ内で実行されているSQL Serverですか?接続コードもコンテナ内で実行されていますか?両方ともyesの場合、それらは同じネットワーク上にありますか?そうでない場合は、サーバーのSQLポートが公開されていますか? –

+0

@omu_negru SQL Serverがコンテナ内で実行されています。アプリケーションは、コンテナ内にないマシン内で実行されています。どのようにSQLポートを公開する?私を案内してもらえますか? – user2695433

+0

-p paramをdocker runコマンドに渡して、MySqlポートを公開します。docker run -p 3306:3306 .......また、ホストをlocalhostに設定すると、dockerを実行してポートが公開されているかどうかを確認できますPSと右側のポートのセクションを確認します。 –

答えて

0

ほとんどのサーバー名は、(ドッカーコンテナの設定のデフォルトである)localhostのポート1401でされている場合。したがって、次の接続文字列を使用する必要があります。

"Default": "Server=localhost,1401; Database=ERPDb; User=sa; Password =******;" 
関連する問題