淺析C#下MySQL連接字符串?dāng)?shù)據(jù)庫服務(wù)器端口號
正常的C#下MySQL連接字符串配置,這是在MSSQL服務(wù)器端口是1433(默認)的情況下。
- <add key="Article" value="server=.;uid=Admin;pwd=admin;database=db;"></add>
但是有時候,為了數(shù)據(jù)庫服務(wù)器安全,這個端口會被改成其它的,這時再用這C#下MySQL連接字符串,連接數(shù)據(jù)庫可能報出以下錯誤:
在建立與服務(wù)器的連接時出錯。在連接到 SQL Server 2005 時,在默認的設(shè)置下SQL Server 不允許進行遠程連接可能會導(dǎo)致此失敗。 (provider: 命名管道提供程序, error: 40 - 無法打開到 SQL Server 的連接)
這時只需要把端口號加上就可以了:
- <add key="Article" value="server=.,端口號;uid=Admin;pwd=admin;database=db;"></add>
C#下MySQL連接字符串端口修改方法:
“開始”-->“服務(wù)器網(wǎng)絡(luò)實用工具”-->tcp/ip-->默認端口:2433(其它的也可以)
StateServer會話管理
將mode屬性設(shè)為StateServer,也就是將會話數(shù)據(jù)存儲到單獨的內(nèi)存緩沖區(qū)中,再由單獨一臺機器上運行的Windows服務(wù)來控制這個緩沖區(qū)。狀態(tài)服務(wù)全稱是“ASP.NET State Service ”(aspnet_state.exe),它由Web.config文件中的stateConnectionString屬性來配置。該屬性指定了服務(wù)所在的服務(wù)器,以及要監(jiān)視的端口 :
- <sessionState mode="StateServer"
- stateConnectionString="tcpip=myserver:42424"
- cookieless="false" timeout="20" />
在這個例子中,狀態(tài)服務(wù)在一臺名為myserver的機器的42424端口(默認端口)運行。要在服務(wù)器上改變端口, 可編輯HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters注冊表項中的 Port值。 顯然,使用狀態(tài)服務(wù)的優(yōu)點在于進程隔離,并可在Web farm中共享。 使用這種模式,會話狀態(tài)的存儲將不依賴于iis進程的失敗或者重啟,然而,一旦狀態(tài)服務(wù)中止,所有會話數(shù)據(jù)都會丟失。換言之,狀態(tài)服務(wù)不像SQL Server那樣能持久存儲數(shù)據(jù);它只是將數(shù)據(jù)存儲在內(nèi)存中。
無法向會話狀態(tài)服務(wù)器發(fā)出會話狀態(tài)請求。請確保 ASP.NET State Service (ASP.NET 狀態(tài)服務(wù))已啟動,并且客戶端端口與服務(wù)器端口相同。如果服務(wù)器位于遠程計算機上,請檢查
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnectio
n 的值,確保服務(wù)器接受遠程請求。如果服務(wù)器位于本地計算機上,并且上面提到的注冊表值不存在或者設(shè)置為 0(如果改為1,就可接受遠程連接),則狀態(tài)服務(wù)器連接字符串必須使用“l(fā)ocalhost”或“127.0.0.1”作為服務(wù)器名稱。
【編輯推薦】