Jeżeli w witrynie/aplikacji wykorzystywana jest sesja, najczęściej działa w trybie In-Process, który jest dość szybki, ale kosztem stabilności - narażony na utratę zawartości sesji. Może to powodować problemy np. z funkcjonowaniem sklepu internetowego, gdzie klienci po zalogowaniu i krótkiej bezczynności w systemie, nie mają możliwości dokończenia transakcji.
Klienci naszej firmy posiadają możliwość skorzystania z innego trybu, jakim jest Server state:
- umożliwia dostosowanie czasu trwania sesji,
- gwarantuje, że w przypadku restartu witryny/aplikacji zostanie ona utrzymana,
- jest nieco wolniejszy od domyślnego trybu In-process.
W takim przypadku sesja znajduje się w odseparowanym procesie, niezależnym od procesu roboczego aplikacji i właśnie dlatego jest odporna na restart.
Aby skorzystać z tej usługi uruchomionej na każdym systemie z zainstalowanym serwerem IIS, należy do pliku web.config witryny w gałęzi "<configuration><system.web>" dodać poniższy kod. Trzy kropki oznaczają pozostałą część kodu, zależną od witryny klienta.
Wartości parametrów validationKey oraz decryptionKey są stałe. Do ich losowego wygenerowania można wykorzystać dowolny generator on-line (przykład http://www.developerfusion.com/tools/generatemachinekey/)
...
<configuration>
<configuration>
...
<system.web>
...
<sessionState mode="StateServer" timeout="120"
stateConnectionString="tcpip=127.0.0.1:42424"
cookieless="false" />
stateConnectionString="tcpip=127.0.0.1:42424"
cookieless="false" />
<machineKey validationKey="646BEC516CC70CF5344B3F0E2DB35A0781D9D740A6746DA9F038F
BAE134F00260058AD678BCFDD3F90521E3395716284A18AE170259D0B1C5DB82402078BFE50"
BAE134F00260058AD678BCFDD3F90521E3395716284A18AE170259D0B1C5DB82402078BFE50"
decryptionKey="4F47E344CD9230E73E7EC5E7B1F380605C4FEFCB3A235B31"
validation="SHA1"/>
validation="SHA1"/>
...
</system.web>
...
</configuration>