14

Node.js と Tedioius を使用してローカル SQL Server インスタンスに接続しようとすると、次のエラーが発生します。

{ [ConnectionError: Failed to connect to XXXXX:1433 - connect ECONNREFUSED]
  name: 'ConnectionError',
  message: 'Failed to connect to XXXXX:1433 - connect ECONNREFUSED',
  code: 'ESOCKET' }

ここに私の接続オブジェクトがあります:

var config = {
  userName: 'username',
  password: 'password',
  server: 'XXXXX',

  options: {
    database: 'databasename',
    instancename: 'SQLEXPRESS'
  }
};

構成マネージャーによると、TCP/IP が有効になっており、ポート 1443 でブロードキャストされていることを確認しました。SQL Server Browser サービスも実行されています。そうでない場合は、このタイプの問題が発生している可能性があります。ウイルス対策とファイアウォールを無効にしましたが、どちらも役に立ちませんでした。

洞察はありますか?

4

6 に答える 6

21

したがって、私が推測しているのは、Tedious では「オプション」にインスタンス名を含めることができますが、それを使用しないか、使用する必要があるため使用できないということです。いくつかの調査を行った後、SQL Server にインスタンス名を指定すると、ポート 1433 からそのインスタンスに使用されている動的ポートにリダイレクトされるはずです。動的ポートを使用しているとは知りませんでしたが、インスタンスに名前が付けられている場合、ポートは常に動的になります。1433 に放送されたのをどこで見たのかわかりませんが、それは私の間違いでした。

動的ポートを確認するには、次を参照してください。

ここに画像の説明を入力

この情報から、コードを次のように変更しました。

var config = {
  userName: 'username',
  password: 'password',
  server: 'XXXXX',

  options: {
    port: 49175,
    database: 'databasename',
    instancename: 'SQLEXPRESS'
  }
};

これで誰かの役に立てば幸いです。

于 2015-08-31T18:24:51.600 に答える