2009-05-09 15 views
0

SQL 2008サーバーには3つのインスタンスがあります。各インスタンスには一意のIPアドレスが割り当てられ、ポート1433で待機します。TCPIPのみが有効です。SQL 2008名前付きインスタンスへのASP接続

私のASP.Netアプリケーションのすべては次のように接続文字列を使用して、成功したIPアドレスを使用して接続:

User ID=SQLUser;Password=userpass;Database=TestDB;Data Source=sqlserver 

を私のASPアプリケーションは、デフォルトのインスタンスに接続します。私は別のインスタンスに接続しようとするたびに、私はこのエラーを取得しています:

Microsoft OLE DB Provider for ODBC Drivers error '80004005' <br /> 
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Invalid connection. 

ASP接続文字列は次のようにされています

driver={SQL Server};server=sqlserver;uid=SqlUser; pwd=userpass; database=TestDB 

を、私は今のIISとSQL Serverの両方で、Windowsファイアウォールをオフに。 SQL ServerとIISサーバーの間には、他のファイアウォールはありません。 SQL BrowserはSQL Server上で実行されています。私はインスタンス名を含めるようにASP接続文字列を変更しようとしました:

driver={SQL Server};server=sqlserver/InstanceName;uid=SqlUser;pwd=userpass;database=TestDB 

私は同じエラーが発生します。

ASPから名前付きインスタンスに接続する方法はありますか?

答えて

2

ので、同様にサーバー名を書く:

server=sqlserver\InstanceName 

また、それは1433

関連のSOの質問にではないかもしれないとして、ポート番号を確認します

0

IPアドレスを入力してください。私は、それがデフォルトのインスタンスのIPアドレスを取得しているサーバーの名前を解決すると思う。別のIPアドレスにバインドしているので、IPアドレスを指定するか、IPアドレスが別のホスト名に解決される場合は、そのIPアドレスに対応するホスト名を使用する必要があります。インスタンス名を指定する必要はないとは思いますが、わかりません。プロダクションサーバーには、パブリックWebアプリケーション用と非パブリックWebアプリケーション用の2つのインスタンスがあります。それぞれは別々のIPアドレスにバインドされていますが、アドレスは異なる名前にマップされます。私は各インスタンスに接続するときに正しいサーバー名を使用する必要があります。

+0

を使用するようにADOを使用しているとき、私はあなたがASP内の接続文字列を変更する必要がありますだと思う「192.168.0.1,1433」のように、あまりにもポートを指定 - 時々役立ちます。ポートがないとSQlクライアントはRPCサーバーを使用して正しいポートを見つけようとする可能性があり、これはインスタンスでは必ずしも機能しないようです。 – Arvo

+0

私はIPアドレスとIPアドレスとポートを使用してみましたが、同じエラーが発生しています。 –

1

EDIT:SQL Serverの名はないUNCある;)

のように/代わりに\でそれをしよう:個人的に私は常にポートを含めるようにしてみてください

mysqlserver\myinstance 

。これは、クライアントがポート番号を把握しようとする往復を保存します。

server=mysqlserver\myinstance,1433;uid=SqlUser;pwd=userpass;database=TestDB 

興味深い、データベースを初期カタログの同義語ですか?

+0

"データベースは初期カタログの同義語です" - はい。 –

+0

SQL Serverの名前はUNCですか? -1 tcp/ipのためにそれを証明するまで – gbn

+0

右のように\\は名前付きパイプでしか機能しません。しかし、まだインスタンスのバックスラッシュです。 – Andomar

1

これは純粋な推測です。

ASP.netからサーバーに接続するときに、SQL OLE DBプロバイダーを使用している可能性があります。
一方、ASPの場合はODBC用にOLEDBを使用しています(または接続文字列に基づいてその種類の接続を選択する場合)。

その場合ですか?
この場合、接続文字列に問題がある可能性があります。たとえば、SQL Serverの接続文字列については、www.connectionstrings.comを参照してください。

ODBCを使用している場合は、SQL Serverのに接続するためにインストールされているドライバの右のセットを持っていることを確認してください。

これは役に立ちますか?

EDIT:IPアドレスに加えて、この http://www.connectionstrings.com/sql-server-2008#20

+0

私はあなたが何かここにいると思います。私がASPのためのSQLOLEDBドライバを使用する場合: プロバイダ= SQLOLEDB;データソース= SqlServer。初期カタログ= TestDB。ユーザーID = SQLUser;パスワード=ユーザパス " ホスト名(インスタンスなし、ポートなし)を使用してサーバに接続するのに問題はありません。提供したリンクごとに接続文字列を変更しようとしましたが、 IISサーバー上のODBCドライバ。 –

関連する問題