Site Renkleri

.Net Dersleri

SQL Server Mode



SQL Server Modu, Windows NT servisine benzer şekilde çalışır. Bu modda, Session bilgisi, bellekte tutulmak yerine, SQL Server da tutulmaktadır. Session state'i SQL Server da tutmak için öncelikle gerekli tabloların ve saklı yordamların (stored procedure) SQL Server üzerinde oluşturulması gerekir. .NET SDK, bu işlemi gerçekleştirebileceğimiz bir SQL scripti içerir. Bu scripti, WINNT\Microsoft.NET\Framework\(versiyon) klasörü altında bulabilirsiniz. SQL Server'da gerekli tabloları ve saklı yordamlı oluşturacak olan sql script "InstallSqlState.sql", oluşturulan bu tabloları ve saklı yordamları sistemden kaldıran script ise "UninstallSqlState.sql" isimli dosyalardır.

Tablo ve Saklı Yordamların SQL Server'da Oluşturulması

SQL Server'ın Session State'i tutabilmesi için gereken tablo ve saklı yordamları oluşturmak için, SQL Query Analyzer'ı açın. Ardından File → Open menüsünden InstallSqlState.sql dosyasını bulun. Dosyayı yakından incelediğinizde, script öncelikle sistemde, daha önce Session için kullanılan saklı yordamları ve geçici tabloları kaldırıyor. Ardından ASPState isminde bir database, DropTempTables, CreateTempTables, ResetData, TempGetAppId başta olmak üzere Session State'in yönetilmesi için saklı yordamlar oluşturmaktadır.

Query → Execute menüsünden scripti çalıştırdığınızda, SQL Query Analyzer'ın Message kısmında, işlemlerin sorunsuz olarak gerçekleştiğine ilişkin mesajlar göreceksiniz. SQL Query Analyzer penceresini kapatıp Enterprise Manager penceresini açtığınızda, ASPState veritabanının ve ilgili saklı yordamların oluştuğunu kontrol edebilirsiniz.

SQL Server'da gerekli olan değişiklikleri yaptıktan sonra, konfigürasyon dosyanıza geri dönüp mode özelliğini SQLServer olarak atayın. sqlConnectionString özelliğindeki user id ve password alanlarına da geçerli kullanıcı adı ve şifresi atadıktan sonra, yapılması gereken değişiklikleri tamamlamış oluyorsunuz.

<sessionState
mode="SQLServer"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;
user id=sa;password=my_password"
cookieless="false"
timeout="20"
/>

Daha önce olduğu gibi SessionDurumu.aspx sayfamızı açıp Session nesnesine bir değer atayalım. Ardından IIS'yi durdurup yeniden başlatalım (iisreset komutu ile). Session nesnesini okumaya çalıştığımızda, session değerinin kaybolmadığını göreceğiz.

Bunun yanında, birden çok SQL Server'ınızı Cluster yapıda kullanarak, herhangi birinde sorun olması durumunda, diğer SQL Server'ın araya girip session nesnesini saklamasını sağlayabilirsiniz.

Web Tasarımı | Site Tasarımı | Bilgisayar Dersleri | Hosting | Domain