Heim >Backend-Entwicklung >C++ >Warum blockiert das Hochladen großer Dateien in einer Webanwendung mit gemeinsamer Sitzung eine andere?
Gemeinsame Sitzungssperre in Webanwendungen: Eine Fallstudie
Zwei IIS-bereitgestellte Webanwendungen, /HRMS und /TravelDesk, nutzen AspState für die gemeinsame Sitzungsverwaltung, sodass Benutzer nahtlos zwischen ihnen wechseln können. Allerdings entsteht ein erheblicher Leistungsengpass, wenn ein Benutzer große Dateien in /TravelDesk hochlädt; /HRMS reagiert während dieses Vorgangs nicht mehr.
Grundursache: Sitzungssperre
Das Problem ergibt sich aus dem Verhalten der gemeinsamen Sitzung. Das Hochladen großer Dateien in /TravelDesk sperrt die Sitzungsdaten des Benutzers in der SQL Server-Datenbank. Diese Sperre verhindert den gleichzeitigen Zugriff von /HRMS, was zum Einfrieren der Anwendung führt.
Lösung: Sitzungssperre während Uploads deaktivieren
Die einfachste Lösung besteht darin, die Sitzungssperre speziell während des Datei-Upload-Vorgangs in /TravelDesk zu deaktivieren. Dies kann durch Festlegen von EnableSessionState="false"
innerhalb der Seitenanweisung oder des für den Upload verantwortlichen Handlers implementiert werden.
Alternative Lösungen: Über gemeinsame Sitzungen hinaus
Um die Skalierbarkeit zu verbessern und Sitzungssperren vollständig zu beseitigen, sollten Sie diese Alternativen zur gemeinsamen Sitzungsverwaltung in Betracht ziehen:
Durch die Implementierung entweder der Sitzungsdeaktivierungstechnik oder der Migration zu einem datenbankgesteuerten Sitzungsansatz kann die nahtlose Navigation zwischen /HRMS und /TravelDesk wiederhergestellt werden, selbst beim Hochladen großer Dateien.
Das obige ist der detaillierte Inhalt vonWarum blockiert das Hochladen großer Dateien in einer Webanwendung mit gemeinsamer Sitzung eine andere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!