0

c#を使用してリモートでSQL Server 2005 Expressエディションに接続しようとしていますが、例外がスローされます。

SQL Serverへの接続の確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しく、SQLServerがリモート接続を許可するように構成されていることを確認してください。(プロバイダー:名前付きパイププロバイダー、エラー:40-SQL Serverへの接続を開くことができませんでした)

以下は、データベースへの接続に使用しているコードです

    private void button_test_Click(object sender, EventArgs e)
    {
        try
        {
            string str = "data source=" + textBox_server.Text + "; initial catalog=" + textBox_db.Text
    + "; user id=" + textBox_user.Text + "; pwd=" + textBox_password.Text + ";";

            SqlConnection sqlcon = new SqlConnection(str);
            sqlcon.Open();
            sqlcon.Close();
            MessageBox.Show("Test Connection was successfull");
        }
        catch (Exception ex)
        {
            MessageBox.Show("Test Connection failed. "+ ex.Message);
        }

正しいIP、データベーステーブル名、ユーザー名、パスワードを入力しています。

SQLServerExpress構成のすべてを確認しました。すべて順調。

それで、私はどこで間違っているのですか?

4

2 に答える 2

2

これは通常、2 つの問題のうちの 1 つです。ファイアウォールがブロックしている可能性があります。テストする最も簡単な方法は、SQL サーバー ポート (デフォルトは 1433) に telnet で接続することです。

よく発生するもう 1 つの問題は、SQL Server Express で正しいプロトコルが有効になっていないことです。ここにそれを行う方法の良い説明があります。 http://www.teratrax.com/connecting-sql-server-express/

于 2012-12-03T14:47:12.903 に答える
0

クライアントマシンで、ファイアウォールを無効にしてみてください。

サーバーマシンでファイアウォールを非アクティブ化しますが、MSSQLの目的のインスタンスに対してTCP/IPプロトコルをアクティブ化したことも確認します。

  • アプリケーション「SQLServer構成マネージャー」
  • ノード「SQLServerネットワーク構成」を展開します
  • [XXXXXXXのプロトコル]をクリックします(目的のSQLインスタンスを選択します)
  • TCP / IPを右クリックして、[有効にする]を選択します

リッスンするポートを変更する場合。「TCP/IP」のプロパティを編集するだけです

サージ

于 2012-12-03T14:57:10.457 に答える