我已經給出了一個用傳統ASP編寫的Web應用程序,用於從Windows 2003 Server(SQL Server 2000和IIS 6)移植到Windows 2008 Server(SQL Server 2008和IIS 7.5) 。經典ASP global.asa SQL Server 2008連接字符串
該站點使用GLOBAL.ASA
文件來定義全局變量,其中之一是連接字符串(cnn
)以連接到SQL Server。
下面是從GLOBAL.ASA
(舊)的連接字符串:
Sub Application_OnStart
Dim cnnDem, cnnString
Set cnnDem = Server.CreateObject("ADODB.Connection")
cnnDem.CommandTimeout = 60
cnnDem.Mode = admodeshareexclusive
cnnString = "Provider=SQLOLEDB; Data Source=192.xxx.x.xx; User Id=xxxx; Password=xxxxx; default catalog=xxxxxxx;"
Application("conString")=cnnString
Call cnnDem.Open(cnnString)
Application("cnn") = cnnDem
End Sub
的.ASP
頁面然後使用cnn
值是這樣的:
strSQL = "Select * From tblUtilities order by companyname"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, Application("cnn"), adOpenKeyset
但是我不能讓連接字符串連接 - 我削減了一個「無法登錄」的錯誤消息(無論我嘗試了什麼登錄ID)。
我編輯了GLOBAL.ASA
文件如下,它的工作原理。
Sub Application_OnStart
Dim cnnDem, cnnString
Set cnnDem = Server.CreateObject("ADODB.Connection")
cnnDem.CommandTimeout = 60
cnnString = "Provider=SQLNCLI10.1;User Id=xxxx; Password=xxxxx;Initial Catalog=xxxxxxx;Data Source=xxxxxx\SQLEXPRESS;"
Application("conString")=cnnString
Application("cnn")=cnnString
Call cnnDem.Open(cnnString)
End Sub
的主要區別是,cnn
現在包含連接字符串,其中如先前cnn
是指ADOBD.Connection
的對象。
我的問題是這會對應用程序產生什麼影響(如果有的話)。我已經完成了一些基本的(本地)測試,現在一切都看起來不錯。但是我想知道是否可能會有多用戶問題(或者這種性質的問題),當這個站點再次部署時可能會出現這種問題。
從MSDN - [不緩存在'應用程序的連接(或會話)'](https://msdn.microsoft.com/en-us/library/bb727078.aspx#EXAA) - 無論如何,在連接池的情況下,幾乎沒有任何好處。您可以將連接字符串本身存儲在應用程序狀態中。 – StuartLC
謝謝你,斯圖爾特 –