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