在Windows2003的服務(wù)器中的IIS6加入了應(yīng)用程序池來回收一些無用的進程的功能,當由于網(wǎng)站程序的錯誤或訪問量太多的導致的應(yīng)用程序池會自動回收該進程,防止網(wǎng)站進入“死機”狀態(tài),而這時候的應(yīng)用程序池的回收就會導致session變量被清除,就出現(xiàn)了session變量不見的現(xiàn)象。 為了解決這種在Windows2003下才出現(xiàn)的問題,我們在服務(wù)端起動ASP.NET State Service服務(wù),并且在系統(tǒng)的machine.config做了一些改動?,F(xiàn)在默認的情況下會話狀態(tài)mode是StateServer。如果您的網(wǎng)站根目錄下也配有一個web.config配置文件,請把mode="InProc"改成mode="StateServer",如下代碼,就可以防止session變量的丟失: <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI" cookieless="false" timeout="30" /> |