0

私の会社は現在、非常に古いデータベースの一部を SQL Server 2005 に移行しています。一部のレガシー アプリでは、新しいサーバーへの接続に問題があります。接続文字列は、おそらく tcp:1433 を自動的に想定するため、Asp.NET 2.0 で機能します。

ASP.NET 1.1 で動作させるには、次のような接続文字列を作成する必要があります。

"Server=tcp:my.server.com,1433;..."

プロトコルとポートがない場合、接続は失敗します (「無効な接続例外」)。

TCP 1433 と UDP 1434 は、ファイアウォールで開いています。SQL Server 2005 では、リモート アクセスが有効になっており、TCPIP も有効になっています。SQL Browser サービスが実行されており、適切なログイン資格情報を使用しています。

プロトコルとポート番号なしでサーバー名を指定できない理由はありますか?

4

3 に答える 3

1

IIRC SQL Server 2005 のデフォルトでは、利用可能な any-old-port が検索されます。私のラップトップでは、これはポート 1212 を意味します。

特定のポートに強制するには、[スタート] -> [プログラム] -> [SQL Server 2005] -> [構成ツール] -> [SQL Server 構成マネージャー] に移動する必要があります。

ここから、SQL Server 2005 Network Configuration->Protocols for (name of service)->TCP/IP を右クリック->Properties->タブ「IP Address」を選択し、TCP Dynamic Ports を に設定する必要があります。

何らかの理由で、「0」は「はい、動的ポートを使用します」を意味し、(つまり、フィールドに入力がない場合)メニューは「いいえ、自分で指定します」を意味します

次に、フィールド TCP ポートに 1433 を入力します。

リストされているすべてのアダプタでこれを行い、SQL サービスを再起動します。

次のようにして、サービスが実際に正しいポートにあるかどうかを確認できます。

スタート→ファイル名を指定して実行→cmd.exe

C:>netstat -ano

このようなエントリを探します

 local address         <stuff>           PID
 0.0.0.0:1433                            <some number>

ここで C:>tasklist を実行します

上記の番号のタスクを探します。このタスクは、sqlsrvr.exe のような名前にする必要があります。

于 2008-11-14T09:15:39.763 に答える
0

おそらく、SQL Serverはマルチプロトコル用に構成されており、他のプロトコルを最初に使用しようとして失敗します。おそらくセキュリティ上の理由(アプリがIISで実行されているアカウント)のためです。ただの推測。

于 2008-11-14T08:27:42.873 に答える
0

ASP.NET マシンの「SQL 構成マネージャー」で「SQL Native Client 構成」の設定を確認します。デフォルトの接続設定はそこに設定されています。また、MDAC 構成をいじってみてください。

http://msdn.microsoft.com/en-us/library/ms131035.aspx

于 2008-11-16T08:28:03.650 に答える