/ / Prehrajte reláciu ASP.NET na jednu žiadosť a potom ju znova získate na nasledujúcej stránke - asp.net, relácia, súbory cookie

Stratte reláciu ASP.NET na jednu žiadosť a potom ju znova získajte na nasledujúcej stránke - asp.net, relácia, súbory cookie

V jednom z mojich problémov vidím veľmi zvláštny problémvýrobné boxy. Máme aplikáciu hostovanú v IIS 6 na jednom počítači s webovým serverom apache pred ňou. Moja aplikácia používa na autentifikáciu členstvo ASP.NET a spolieha sa na stav relácie. Momentálne vidím problém, keď niektoré požiadavky servera narazia na nulovú výnimku pri pokuse o prístup k ľubovoľným premenným relácie, ale ak je žiadosť opakovaná, stránka nevyhovuje žiadnym výnimkám a správa sa správne.

Verím, že to má niečo spoločné sCookie ID relácie sa na žiadosť poškodia alebo stratia, ale neviem, čo by to mohlo spôsobiť. Dôvod verím, že je to preto, že sa zdá, že ASP.NET nevidí súbor cookie a nevytvára novú reláciu, čo by vysvetľovalo, prečo sú premenné null. Keď získa výnimku, nemôže zapísať nový súbor cookie SessionID späť klientovi, takže klient stále zachováva pôvodný identifikátor SessionID. Keď sa odošle ďalšia požiadavka, použije sa pôvodný súbor cookie SessionID, ktorý teraz ASP.NET nájde a dokáže načítať stav relácie. Toto je čistá špekulácia, zdá sa však, že sa hodí k príznakom.

Táto stránka tiež nepoužíva žiadne iné cookiespotom tie, ktoré vyžaduje členstvo ASP.NET a ASP.NET Session, takže som výrazne pod limitom súborov cookie pre IE. Stránka funguje správne približne 8 mesiacov a tento problém sa nedávno objavil. Skúsil som resetovanie služby IIS a reštartoval počítač, zdá sa však, že nič nepomohlo problému.

aktualizácia:

Tu je niekoľko vysvetlení, ktoré boli požadované.

1.) Náš server Apache je jediná vec, ktorá je vystavená internetu. V tomto poli sa vyskytujú všetky žiadosti týkajúce sa protokolu HTTPS. Box Apache potom pošle všetky minulé požiadavky cez HTTP nášmu aplikačnému serveru. Deje sa tak z bezpečnostných dôvodov. Preskúmali sme, či bol problém Apache, ale zdá sa, že v protokoloch Apache nie je žiadna chyba.

2.) Nulová výnimka sa vyskytuje pri pokuse o prístup k objektu uloženému v relácii, ktorý očakáva, že tam bude aplikácia, na rozdiel od výnimky, ku ktorej dochádza samotný objekt relácie.

odpovede:

0 pre odpoveď č. 1

Našli sme koreň problému. Vyzerá to, že meta báza IIS sa na našom serveri aplikácií poškodila. Najlepším spôsobom, ako tento problém vyriešiť, je vykonať čistú inštaláciu služby IIS, ale kvôli obchodným obmedzeniam to pre nás nie je možné. Ďalším riešením je vlastne iba vytvoriť novú skupinu aplikácií pre aplikáciu, pod ktorou bude spustená. Podľa niektorých ľudí, ktorí majú viac skúseností so službou IIS ako ja, sa tým problém v krátkodobom horizonte vyrieši, je však veľmi pravdepodobné, že to isté sa stane aj v prípade tejto skupiny aplikácií. Ak sa to začne znova, musíme vytvoriť nové aplikácie.