InProc oturum durumu modu ASP.NET kullandığınızda oturum verileri kaybolur

Bu makale, ASP.NET InProc oturum durumu modunu kullandığınızda oturum verilerinin kaybolması sorununu çözmenize yardımcı olur.

Orijinal ürün sürümü: ASP.NET
Özgün KB numarası: 324772

Belirtiler

ASP.NET Web uygulamaları için oturum verileri, InProc oturum durumu modu için rastgele aralıklarla kaybolmuş gibi görünür.

Neden

Sınıf veya Aspnet_wp.exe işlemi (veya IIS 7.0 veya sonraki bir sürümde çalışan uygulamalar için W3wp.exe işlemi) geri dönüştürüldiyse oturum durumu verileri kaybolur AppDomain . Genellikle, AppDomain birkaç faktöre göre yeniden başlatılır:

  • Çeşitli öznitelikler (örneğin, memoryLimit öznitelik) yapılandırma dosyasının <processModel> bölümünde belirli ayarlara sahiptir.
  • Global.asax veya Web.config dosyası değiştirildi.
  • Bin Web uygulamasının dizini değiştirildi.
  • Virüs tarama yazılımı bazı .config dosyalarına dokundu.

InProc oturum modu, oturum durumunun yerel olarak depolandığını gösterir. Bu, InProc oturum durumu modunun Web uygulamasında yaşam nesneleri AppDomain olarak depolandığı anlamına gelir. Bu nedenle oturum durumu, iis üzerinde çalışan uygulamalar için Aspnet_wp.exe (veya W3wp.exe) veya AppDomain yeniden başlatıldığında kaybolur.

Çözüm

Bu sorunu geçici olarak çözmek için StateServer veya SqlServer oturum durumu modunu kullanabilirsiniz. ASP.NET, oturum durumu verilerini depolamak için bu diğer yaklaşımları sağlar. StateServer ve SqlServer modlarında oturum durumunuz Web uygulamasının AppDomain içinde depolanmaz.

Not

Hangi modun gereksinimlerinize uygun olduğuna karar verince her oturum durumu moduyla ilişkili davranışı ve sorunları anlamak önemlidir.

Durum

Bu davranış tasarımdan kaynaklanır.

Başvurular

ASP.NET oturum durumu yönetimi ve diğer ilgili bilgiler hakkında daha fazla bilgi için bkz. Oturum Durumu.