ASP.NET 2.0 oturumunda çok garip bir sorun yaşıyorum. Üzerinde çalıştığım sistem, bir rapor oluşturmak için parametreleri (Nesneleri ve Soruları) depolamak için oturum değişkenlerini kullanır. Bunlar, aynı ada sahip sınıfların örnekleridir ve bu nedenle aşağıdaki gibi parametrelerle doldurulurlar:ASP.NET oturumu beklenmedik bir şekilde sona eriyor
Bu rapor 4 aspx sayfasıyla oluşturulmuştur. İlk konum ve tarih parametrelerini tanımlar, ikinci sayfa soruları depolar ve üçüncü mağazalar cevapları belirler. Son görüntüler, Excel ve HTML biçimlerinde oluşturulan raporlara bağlanır. Tüm değişken veriler oturumda depolanır ve her şey son sayfaya kadar gider, Session.Abandon() gibi bir şey olduğunda, Session_End olayı tetiklenir ve tüm değişkenler kaybolur. Bu sadece günde bir kez olur, raporun ilk kullanımında her bir giriş yapmış kullanıcı için, ve tüm gün onlarca kez deneyebilir ve tekrar görmeyeceksiniz.
Sorun, HER ZAMAN aynı sayfada gerçekleşir ve oturum modu InProc.
Zaten şu doğrulamaları yapmış: vardı herhangi Session.Abandon() veya Session.Clear() komutları eğer
- kontrol edildi. Hiç yok.
- Denetlenen oturum zaman aşımı, 18 dakikadır ve sorun ne kadar uzun bir süredir kullanıldığına bakılmaksızın, yukarıda belirtilen herhangi bir zamanda gerçekleşir.
- Denetimli formlar zaman aşımı, Kimlik Doğrulama altında. Ayrıca 18 dakikaya ayarlandı.
- Sunucu.Transfer() ile, bazen oturumları temizleyip görüntülenen ve Response.Redirec()
- ile değiştirilmiş bir hata olduğunu ve her şeyin yoluna gittiğini öğrendim. ve sayfa tamamen yüklendiğinde, sadece ölür. Tüm değişkenler gitti, ancak oturum hala çalışıyor.
- Bildiğim kadarıyla, IIS doğru yapılandırılmıştır. Ona erişimim yok, ama diğer tüm sistemler mükemmel çalışıyor.
- Ayrıca, yukarıda bahsedilen sistemlerden bazılarını, neler olabileceğine dair bir ipucu arayarak analiz ettiniz, ancak web.config dosyaları, sorunu yaşadığımma çok benziyor ve oturumla etkileşimde bulunmak için hiçbir özel kod uygulanmadı. farklı.
- Ayrıca, uygulama yeniden başlatmaları için IIS'nin izlenmesini de düşündüm, ancak 15'in varsayılan sınırını aşmadığından eminim. Yine de, IIS sunucusuna erişimim yok ve bilgisayarımda yapılan tüm sınamalar ASP kullanıyor. NET Geliştirme Sunucusu. Sorun her ikisinde de ortaya çıkıyor.
- .config ve asax dosya değişiklikleri, bin dizinindeki/dizinindeki değişiklikler gibi işlem geri dönüşümü olasılıklarını denetlediniz, hiçbir şey olmuyor.
ardından kısıtlamalar geçerlidir:
- nedeniyle şirket politikaları InProc dışındaki oturum modunu değiştirilemez.
- Rapor oluşturma "işlemi" 4 sayfa üzerinden oluşturuldu. Bununla aynı fikirde değilim, ancak zaman ve bütçe kısıtlamaları nedeniyle tekrar yapamıyorum.
Herhangi bir düşünce veya çözüm yardımcı olabilir. Gerekli güncellemeler ve testler için iletişim halinde olacağım.
Profilci mekanizmalarına erişiminiz var mı? W3wp'ye adanan bellek miktarı, machine.config dosyasında belirtilen değeri aştığında oturum temizleme sorunları yaşıyorduk. ASP.NET performans sayaçları, hata ayıklamada bize çok yardımcı oldu. –
machine.config dosyasını kullanmıyoruz. Bildiğim kadarıyla, bu dosya web sitesidir ve IIS'deki aynı web sitesi altındaki diğer uygulamaları da etkiler. Şirketteki sunucu altyapısı, sanal dizinler olarak aynı sitenin altındaki tüm sistemleri uygular. –
session_end'in hangi anda tetiklendiğini göstermek için kod gönderebilir misiniz? Ve raporları oluşturmak için ne kullanıyorsunuz? Yanlışlıkla herhangi bir özel durumun (örneğin, application_error'da) ele alınmadığını kontrol edin. (Raporlama işi 3. şahıssa, hala oluşup oluşmadığını görmek için sayfayı onsuz çalıştırır). – Jeroen