2017-12-12 17 views
-1

デフォルトのインスタンスではないSQL Serverの名前付きインスタンスにASP.NET経由で接続できません。 私のサーバー名はNAMEOFSERVER \ NAMEOFINSTANCEです。SQL Server asp.netの名前付きインスタンスに接続できません。C#

サーバーのデフォルトインスタンスに接続しようとすると、動作します。 SQL Server Browserサービスが実行されている

connection_string = "Data Source=" + servername + ";Initial Catalog=" + db_catalog + ";User Id=" + user + ";Password=" + password + ";persist security info=False;Trusted_Connection=No;Connection Timeout=1000" 

は、私は次の接続文字列を使用します。

+1

エラーメッセージは何ですか? –

+1

SQL管理スタジオ経由で接続できますか? –

+0

はい、SQL管理スタジオ経由で接続しても問題ありません。 – moons

答えて

-1

接続文字列は、上記のパターンを持っていることを確認します(必ず接続してください、SQL Serverのインスタンスが一部のユーザーへのアクセスを制限することができますので、あなたは、SQL Management Studioを経由して接続できることを確認し、また

var connectionString = $"Data Source=myServerName\\myInstanceName;Database=myDataBase;User Id=myUsername; Password=myPassword;", 

アプリに使用されるのと同じユーザー名+パスワードに変更します)。


EDIT

あなたが接続に使用しているユーザーは、Windowsアカウントの一部でない場合は、お使いのインスタンスのセキュリティ設定を開き、Mixed Modeが有効になっていることを確認してください。

+1

['Server'と' Data Source'は同じものです](https://stackoverflow.com/questions/15025055/server-vs-data-source-in-connection-string)。 – CodeCaster

+0

@CodeCasterありがとう、私は私の答えを更新しました。私のポイントは、スラッシュを含むパターンが正しいことを確認することでした。私はまたいくつかのヒントを更新しました。 – rodrigogq

-2

あなたは、変数 "サーバー名" は二重のバックスラッシュが含まれているかどうかを確認することをお勧めします。これは、バックスラッシュがエスケープ文字であるために必要です。

connection_string = "Data Source=" + servername.Replace("\\", "\\\\") + ";Initial Catalog=" + db_catalog + ";User Id=" + user + ";Password=" + password + ";persist security info=False;Trusted_Connection=No;Connection Timeout=1000" 
+0

私の変数にバックスラッシュが1つ含まれています: "nameofmyserver \ nameofmyinstance" - これは問題ですか? – moons

+0

私は追加したConnectionStringを試しましたか?そこで、バックスラッシュは二重バックスラッシュに変換されます。私の提案は、あなたがそれを試してみるとうまくいくということです。 – Steef

+0

ソースに文字列を指定するときは、バックスラッシュをエスケープする必要があります。実際の文字列に二重のバックスラッシュは必要ありません。 – CodeCaster

関連する問題