2

クラウド マシン上の Windows 2008 サーバーに SQL Server 2008 R2 Express がインストールされています。いくつかのクライアント アプリケーションからのすべてのタイプの接続 (ado.net、nhibernate など) は、OLEDB を除いて正常に動作します。SQL Native Client も正常に動作します。

サーバーからローカルに接続して、データ ソースとしてインスタンス名を書き込もうとしたところ、すべて問題ありませんでした。しかし、外部から問題が発生したか、wan ip または dns を書き込むと、ローカルからも問題が発生しました。

-- works perfect from everywhere
Provider=SQLNCLI10;Data Source=mntek.no-ip.org;User ID=xxx;Password=xxx; 

-- does not work from anywhere
Provider=SQLOLEDB.1;Data Source=mntek.no-ip.org;User ID=xxx;Password=xxx;

-- works only from local
Provider=SQLOLEDB.1;Data Source=flz001\sqlexpress;User ID=xxx;Password=xxx;

エラー: [DBNETLIB][ConnectionOpen (無効なインスタンス ())。無効な接続です。

-- works perfect with ado.net
Data Source=mntek.no-ip.org;User ID=xxx;Password=xxx

他のいくつかのクライアント アプリケーション (私のものではない) は oledb 接続で作成されているため、db を oledb プロバイダーに接続する必要があります。

何か案は?

よろしく、マート

4

1 に答える 1

6

これが尋ねられてからしばらく経ちましたが、現在、おそらく関連していると思われる OLE DB と SQL Server に関連する問題に取り組んでいます。

サーバーがデフォルトのポート (1433) を使用していたとしても、次のように UDL 接続文字列で明示的に指定する必要があることがわかりました。

Provider=SQLOLEDB.1;User ID=USER;Data Source=IP,1433

ここでなぜそれが必要なのかを尋ねました: SQL Server 2008 OLE DB UDL でポート 1433 を明示的に指定する必要があるのはなぜですか?

多分それを試して、それが役立つかどうかを確認してください。

于 2013-08-28T15:33:00.883 に答える