modundadir ki bu session bilgilerinin bellekte tutulduğunu gösterir. Bunun avantajları yanında bazı dezavantajlarıda vardır. Mesela web projenin ayarlarını web.config de tutuyorsanız bu ayarlarda değişiklik yaptığınızda tüm oturumlar sonlandırılır veya sayfalardan birisinde güncelleme yaptığınızda da benzer durum olabilmektedir. Bunun yanında hızlı tepkime verir. Eğer session state 'i "
" olarak değiştirirseniz oturum sonlandırmalarından kurtulabilirsiniz ve benzer tekniği web uygulamanın birden fazla sunucuda olup session bilgilerinin bir noktada tutulması (webfarm) gereken durumlarda da kullanabilirsiniz.
1.
aspnet_regsql.exe -S THEBLACKSEA\SQLEXPRESS -E -ssadd -sstype p
KOMUTUYLA "ASPState" VERİ TABANINI OLUŞTURALIM. Burada THEBLACKSEA\SQLEXPRESS ibaresi bendeki SQLServer Instance name'dir siz, sizdeki SQL Server "SERVER" kısmını buraya giriniz. diğer parametleri olduğu gibi bırakabilirsiniz zira parametrelerin ne olduğunu merak ediyorsanız .exe komutunun parametrik bilgilerine bakınız !
2.
WEB.CONFIG E EKLEME YAPALIM
timeout=300 minute = 5 saat
<system.web>
.....
<sessionState mode="SQLServer" cookieless="false" timeout="300"
sqlConnectionString="Integrated Security=SSPI;data source=THEBLACKSEA\SQLEXPRESS;" />
.....
<system.web>
3.
sisteme login olmayı deneyelim.
eğer
Login failed for user 'IIS APPPOOL\ASP.NET v4.0'
hatası verirse, SQL Servar'a IIS APPPOOL\ASP.NET v4.0
kullanıcısını ekleyelim.
mode="SQLServer" da web.config de istediğin gibi değişiklik yapılabilir
ve yapılan bu değişiklikler timeOut 'a sebep olmayacaktır.
//web.config den veri okumak için
using System.Web.Configuration;
....
string _var1 = WebConfigurationManager.AppSettings["degisken1"].ToString();
//web.config değerlerini değiştirmek
var cnf1 = WebConfigurationManager.OpenWebConfiguration("~");
cnf1.AppSettings.Settings["degisken1"].Value = "test";
cnf1.Save();