web-dev-qa-db-ja.com

C#用のリモートSQLサーバーの適切な接続文字列

リモートSQLサーバーExpressエディションの正しいSQL接続文字列を知りたいだけです。

これは私が得たものですが、いくつかの問題がありました

 SqlConnection cs = new SqlConnection(@"Data Source=(IP Address)\PC-NAME\SQLEXPRESS,1433;Network Library=DBMSSOCN;Initial Catalog=dbase;User ID=sa;Password=password");

私のC#デバッガーでこのエラーが発生しました:

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: TCP Provider, error: 0 - A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected Host has failed to respond.)

前もって感謝します!

8
Lucas Juan

あなたのコメントから:

IPアドレスは静的IPアドレスです。建物の外とつなげようとしています。

接続しようとしているデータベースが、ターゲットアドレスを持つ[ルーター/ファイアウォール/モデム]の背後にあるコンピューター上にある場合、[ルーター/ファイアウォール/モデム]でポート転送を使用して、すべての接続を=に転送する必要がありますTCPポート1433からターゲットマシンまで。

静的IPアドレスを使用してADSLモデムの背後にあるホームコンピューターに接続しようとしている場合、外部ポート1433を内部アドレスの同じポートに接続するには、ADSLモデムをポート転送で構成する必要があります。これはmustモデムで行う必要があり、はできません接続文字列だけで実行されます。

127.2.3.4(デモンストレーションでは無効なアドレス)でリスニングしているADSLモデムと、その背後にあるIPアドレス192.168.0.100のPCがあるとします。ポート1433を192.168.0.100:1433に転送するようにモデムを構成します(モデムのメーカーとモデルによって異なります)。次に、接続文字列は次のようになります。

Data Source=127.2.3.4\SQLEXPRESS,1433;Network Library=DBMSSOCN;Initial Catalog=dbase;User ID=sa;Password=password

SQLEXPRESSがサーバー上の唯一のデータベースインスタンスであり、ポート1433がデフォルトであるため、より単純なものを使用できます。

Data Source=tcp:127.2.3.4;Initial Catalog=dbase;User ID=sa;Password=password

Network Library=DBMSSOCN仕様はtcp:に置き換えられ、インスタンスとポートのデフォルトが想定されます。

10
Corey

ソリューション:リモートマシンを提供している場合IP addressその後、提供する必要はありませんhostname

これを試して:

SqlConnection cs = new SqlConnection(@"Data Source=(IP Address)\SQLEXPRESS,1433;Network Library=DBMSSOCN;Initial Catalog=dbase;User ID=sa;Password=password");
3

SqlConnection String Builder here を試してみませんか。

2
vkstarry