8

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

  1. kontrol edildi. Hiç yok.
  2. 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.
  3. Denetimli formlar zaman aşımı, Kimlik Doğrulama altında. Ayrıca 18 dakikaya ayarlandı.
  4. Sunucu.Transfer() ile, bazen oturumları temizleyip görüntülenen ve Response.Redirec()
  5. 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.
  6. 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.
  7. 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ı.
  8. 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.
  9. .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:

  1. nedeniyle şirket politikaları InProc dışındaki oturum modunu değiştirilemez.
  2. 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.

+0

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. –

+0

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. –

+0

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

cevap

2

Bu çaba için herkese teşekkür etmek istiyorum!

Ben ve ekibim, bu olayda neler olduğunu keşfettiler. Web sitesi klasöründeki geçici dosyaları ve dizinleri silerek, geri dönüşüm ve oturumun durmasına neden olan bir yöntem vardı. Kod, tarih ve saati hesaplıyordu ve her 24 saatte bir dirsenin silinmesi gerekiyordu, böylece bir kullanıcı sisteme ilk kez giriş yaptığında ve raporu oluşturduğunda, dirsini sildi ve oturumu temizledi.

1

Birkaç öneri:

  1. ayıklama yerel olarak ilk vuruş ve yoldaki benzersiz bir şey varsa bkz.

Ne oluyor düşünüyorum 3. olan bir geri gönderme önce ilk vuruş

  • Eğer oturum değerini kullanarak olmadığından emin olun işçi süreci ile ilgili bir sorun neden olmadığından emin olun. Değerleri bir oturumda kuruyorsunuz ve daha sonra, oturum değerinin gerçekte saklandığı bir geri gönderme işleminden önce bu oturumdan geri alıyorsunuz. Sadece ilk denemede gerçekleştiği için, semptomlar bu şüpheyi yansıtmaktadır. Eğer haklıysam, bunu ayarlanan oturum yerine değil, oturum değerini tükettiğiniz aynı yerden tüketerek çözersiniz ve aynı talepte bulunmayı deneyin.

  • +0

    # 1'e gelince, bunu daha önce yapmıştım ama "benzersiz" bir şey görmedim. # 2'de, süreçteki sorunları nasıl göreceğime emin değilim. # 3 için, gerçekten ayarlanmadan önce değerleri tüketebileceğimi mi kastediyorsun? Durum böyle değil, çünkü ilk koşuyu izledim, değişkenler ve ilgili değerler ve nesneler ilk aspx sayfasında ayarlandı, ikinci ve üçüncü ise nesnelere kullanıcı tarafından girilen parametrelerle yalnızca onay kutularını yerleştirir. radyolar ve benzerleri, ileri ve son olarak tüm değişkenler bozulmadan yüklenir. –

    +0

    Değişkenler, excel ve html dosyaları Page_Load olayı sırasında oluşturulduğunda kullanılır. Bu olay bittiğinde, Session_End aniden kovulur ve değişkenler temizlenir. Bunun neden kaynaklandığını düşünüyorsunuz çünkü değişkenler Page_Load üzerinde kullanılıyor?Bu sayfa sadece bir geri bildirime ya da yapılmayacaktır, çünkü bu sayfa yalnızca raporun oluşturulması ve linklerin oluşturulması için yüklenir, başka bir şey yoktur. Bu çok garip bir yöntemdir, bunun bir Button_Click üzerinde üretilmesini öneririm, ama bu boku tanımlayan ben değildim. –

    0

    Oturumlarla ilgili bir sorun yaşadım. Benim durumumda sorun uygulama havuzunun maksimum çalışan iplik sayısıydı. Eğer asp.net'in varsayılan oturumunu kullanacaksanız bunu 1. yapmanız gerekir veya başka bir konu oturumları alamaz.

    İlgili konular