こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

同じPC内のSQLServerにリモート接続許可されない

DT-PC(WindowsXP-sp2)にVisual C# 2005 Standard EditionとSQLServer2005 とSQLServer Management Studio Expressをインストールして,C#のプログラムでデバッグを実行して、SQLServerに接続しようとしたら「規定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。」と通知ポップアップウィンドウに表示されるので、http://www.microsoft.com/japan/sql/ssj/tips/01.mspxを参考にして、
「ローカル接続およびリモート接続」と「TCP/IPのみを使用する」を選択し、
一度、サービスを停止した後、「開始」ボタンを押下して、Windowsファイアウォールを無効にして、下記の様にIPアドレスを直接してし、

private void button2_Click(object sender, EventArgs e)
{
System.Data.SqlClient.SqlConnection cn
= new System.Data.SqlClient.SqlConnection();

//接続文字列を作成する
cn.ConnectionString = "Data Source=192.168.30.80:139"
+ ";Integrated Security=True;database=Database1";

try
{
cn.Open();
MessageBox.Show("接続に成功しました。", "通知");
cn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "通知");
}
}

接続文字列を色々と書き換えてやってみましたが、どうしても先のリモート接続を許可しない・・・が表示され、SQLServer2500に接続できません。

DOSコマンドでnetstat -anを実行すると

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\yamada>netstat -an

Active Connections

Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1059 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1028 0.0.0.0:0 LISTENING
TCP 192.168.30.80:139 0.0.0.0:0 LISTENING
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:500 *:*
UDP 0.0.0.0:1035 *:*
UDP 0.0.0.0:1434 *:*
UDP 0.0.0.0:4500 *:*
UDP 127.0.0.1:123 *:*
UDP 127.0.0.1:1900 *:*
UDP 192.168.30.80:123 *:*
UDP 192.168.30.80:137 *:*
UDP 192.168.30.80:138 *:*
UDP 192.168.30.80:1900 *:*

C:\Documents and Settings\yamada>

のように表示されます。

先のソースは、株式会社 秀和システムの「Visuai C# 2005 逆引き大全 500 の極意」のP301のリスト2を書き換えたものです。
Cドライブのフォルダ「C#2005」に置いたACCESSへの接続は成功しますが、
( C:\C#2005\SampleDB.mdb)
Cドライブ直下に置いたSQLSqerverデータベース C:\Database1.mdf への接続は失敗してしまいます。
Windowsファイアウォールは無効に設定せず、「例外」を設定する必要があるのでしょうか。 また、現在、使用している某社のウィルスセキュリティソフトも無効に設定しなければならないのでしょうか。また、管理者権限でないと接続できないのでしょうか。
以上

投稿日時 - 2008-06-09 12:15:49

QNo.4086791

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

全く見当違いの回答だったら申し訳ありませんが、
SQL 2005 Expressを初期設定でインストールした場合なら
"SQLEXPRESS"と言う名前付きインスタンスでインストールされます。

その場合のデータソース名は、"<サーバ名>\SQLEXPRESS"となります。

投稿日時 - 2008-06-09 12:26:41

お礼

御回答、有難う御座います。
御指摘を受けて、サーバー名がSATURNなので
cn.ConnectionString = "Data Source=192.168.30.80:139" を
cn.ConnectionString = "Data Source=SATURN\SQLEXPRESS" と書き換えて
やってみましたが、接続はできませんでした。
http://www.microsoft.com/japan/sql/ssj/tips/01.mspx では、
WindowsXP SP2ではホスト名解決が必要だが、ADOやADO.NETであれば
IPアドレス​を直接入力して、例えば、"Data Source=192.168.1.13"のようにすれば
ホスト名解決が不要になるとあったのでやってみましたが、ADOやADO.NETではないのでしょうか。
ann_dvさんがWindowsXP SP2でSQLServerにリモート接続が出来ているのであれば、Windowsファイアウォールの例外はどのよに設定されておられるのでしょうか。宜しく御願い致します。以上

投稿日時 - 2008-06-09 13:27:12