簡體   English   中英

指定協議和端口時,只能在ASP.NET 1.1中訪問Sql Server 2005

[英]Sql Server 2005 only accessible in ASP.NET 1.1 when I specify protocol and port

我的公司目前正在將一些真正的舊數據庫遷移到sql server2005。某些舊版應用程序在連接到新服務器時遇到問題。 連接字符串在Asp.NET 2.0中有效,可能是因為它自動假定tcp:1433。

我必須在ASP.NET 1.1中構造這樣的連接字符串才能使其工作:

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

沒有協議和端口,連接將失敗(“無效的連接異常”)

我們的防火牆已打開TCP 1433和UDP 1434。 在啟用SQL Server 2005遠程訪問后,在啟用TCPIP的同時,也在運行SQL Browser服務,我使用了正確的登錄憑據。

有什么想法為什么我不能只指定沒有協議和端口號的服務器名稱?

IIRC SQL Server 2005默認情況下會查找可用的任何舊端口。 在我的筆記本電腦上,這意味着端口1212。

要將其強制到特定端口,必須轉到“開始”->“程序”->“ SQL Server 2005”->“配置工具”->“ SQL Server配置管理器”

從這里,您必須轉到SQL Server 2005網絡配置->(服務名稱)的協議->右鍵單擊TCP / IP->屬性->選擇選項卡“ IP地址”,然后將TCP動態端口設置為。

由於某些原因,“ 0”表示“是,請使用動態端口”,並且(即,在字段中沒有輸入)菜單項“否,我將自己指定”

然后在“ TCP端口”字段中填寫1433。

在列出的所有適配器上執行此操作,然后重新啟動SQL Service。

現在,您可以通過執行以下操作來檢查服務是否確實在正確的端口上

開始->運行-> cmd.exe

C:> netstat -ano

尋找這樣的條目

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

現在執行C:> tasklist

並從上面查找帶有數字的任務。 該任務的名稱應類似於sqlsrvr.exe。

可能您的SQL Server配置為使用多協議,並且它正嘗試首先使用其他協議而失敗,也許出於某種安全原因(該應用程序在IIS中運行的帳戶)。 只是一個猜測。

檢查ASP.NET計算機上“ SQL配置管理器”中的“ SQL本機客戶端配置”設置。 在此設置默認的連接設置。 也可以嘗試弄亂MDAC配置:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM