SQL Serverデータベースを使用するC#アプリケーションを作成しました。ワークグループで他のコンピュータを自分と相互に接続しています。 C#アプリケーションを他の人と共有しました。アプリケーションを開くと、エラーが発生します
SQL Serverへの接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした
しかし、アプリケーションは私のPCで正常に動作しています。私が使用している接続文字列は
Data Source=ASHISHPC1\SQLEXPRESS;Initial Catalog=ACW;User ID=ash159;Password=ashish159
これは.config
ファイル。
アプリケーションは私のPCで正常に動作しています。私は何をしなければなりませんか?サーバーでTCP/IPを有効にしましたが、同じエラーが引き続き発生します。接続文字列などに変更がありますか?
リモートアクセスを許可するには、2つのレベルのセキュリティを変更する必要があります。
SQL Serverの構成。 Express、Developer、およびEnteprise Evaluationエディションのデフォルトでは、TCP/IPプロトコルによる接続はdisabledです。 SQL Server構成マネージャーを使用してこれを有効にします。
Windowsファイアウォール。ファイアウォールを完全に無効にすると、このコンポーネントで機能しますが、セキュリティのベストプラクティスではありません(必須ではありません)。 (注:このセクションでは、のデフォルト構成を想定しています。これらの手順にわずかに影響する変更)。
接続するSQL Serverインスタンスのタイプに応じて、2つのケースがあります。
デフォルトのインスタンス(コンピュータ名のみで接続)。 TCPポート1433またはデータベースエンジンサービスのいずれかに受信許可ルールを追加します。
名前付きインスタンス(コンピューター名+インスタンス名で接続)。 UDPポート1434に着信許可を追加して、SQLブラウザーサービスにアクセスします。データベースエンジンサービスに着信許可ルールを追加します。
この手順は完全に文書化されています ここ 、または私が説明を見てから名前付きインスタンスの構成をウォークスルーすることができます ここ 。
SQL-Serverで正しいNetwork-Settingsを設定する必要があります: SQL-ServerでアクティブなTCP/IP また、サーバーBrowser-Serviceが実行されていることを確認してください。 SQL-Serverにアクセスできません。
Bendegで述べられているようにsqlbrowserサービスがオンになっていることと、クライアントが名前を解決するためにsqlbrowserにアクセスできるようにマシンでUDP 1434が開いていることを確認してください。名前付きインスタンスのTCP/IPポートも開きます。
インスタンスのポートを見つけるには、Management Studioでtcp:プレフィックスを使用して次のように接続します:tcp:ASHISHPC1\SQLEXPRESSと以下のクエリの結果は、ワークグループのクライアントに公開する必要があるポートです。
SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID