Ich führe eine ASP.NET 2.0-Anwendung in IIS 6.0 aus. Ich möchte, dass das Sitzungszeitlimit 60 Minuten beträgt und nicht die Standardzeit von 20 Minuten. Ich habe folgendes getan
- Setzen Sie
<sessionState timeout="60"></sessionState>
einweb.config
. - Legen Sie das Sitzungszeitlimit in den Konfigurationseinstellungen von IIS-Manager / Website-Eigenschaften / ASP.NET auf 60 Minuten fest.
- Stellen Sie das Leerlaufzeitlimit in den Eigenschaften / der Leistung des Anwendungspools auf 60 Minuten ein.
Ich bekomme immer noch ein Sitzungszeitlimit von 20 Minuten. Muss ich noch etwas tun?
Antworten:
Verwenden Sie die Formularauthentifizierung?
Die Formularauthentifizierung verwendet einen eigenen Wert für das Zeitlimit (standardmäßig 30 Minuten). Ein Zeitlimit für die Formularauthentifizierung sendet den Benutzer zur Anmeldeseite, während die Sitzung noch aktiv ist. Dies sieht möglicherweise so aus, wie sich Ihre App verhält, wenn die Sitzung abläuft, sodass Sie sich leicht miteinander verwechseln können.
Durch Festlegen des Formularzeitlimits auf etwas weniger als das Sitzungszeitlimit kann der Benutzer ein Fenster erhalten, in dem er sich erneut anmelden kann, ohne Sitzungsdaten zu verlieren.
quelle
Ich weiß nichts über web.config oder IIS. Aber ich glaube, dass Sie es mit C # -Code so machen können
quelle
Session.Timeout
Verwendung von web.config oder IIS unterscheidet. Ich gehe daher davon aus, dass dies für die gesamte Anwendung gilt.Verwenden Sie den folgenden Codeblock in Ihrer Datei web.config. Hier beträgt das Standard-Sitzungszeitlimit 80 Minuten.
Verwenden Sie den folgenden Link für das Sitzungszeitlimit mit der Popup-Warnmeldung.
Beispiel für ein Sitzungszeitlimit
Zu Ihrer Information: Die obigen Beispiele werden mit dem Devexpress-Popup-Steuerelement erstellt, sodass Sie das Devexpress-Popup-Steuerelement anpassen / durch das normale Popup-Steuerelement ersetzen müssen. Wenn Sie devexpress verwenden, müssen Sie keine Anpassungen vornehmen
quelle
Haben Sie etwas in machine.config, das möglicherweise wirksam wird? Das Festlegen des Sitzungszeitlimits in web.config sollte alle Einstellungen in IIS oder machine.config überschreiben. Wenn Sie jedoch eine web.config-Datei irgendwo in einem Unterordner in Ihrer Anwendung haben, überschreibt diese Einstellung die im Stammverzeichnis Ihrer Anwendung.
Wenn ich mich richtig erinnere, wirkt sich das Zeitlimit in IIS nur auf ASP-Seiten aus, nicht auf ASPX. Sind Sie sicher, dass Ihr Sitzungscode in web.config korrekt ist? Es sollte ungefähr so aussehen:
quelle
In meiner Situation war es Application Pool. Es wird so eingestellt, dass es im Leerlauf für xx Minuten neu gestartet wird. Wenn ich es so einstelle, dass es nicht neu startet, scheint es den Wert von Web Config zu verwenden.
quelle
Das ist normalerweise alles, was Sie tun müssen ...
Sind Sie sicher, dass der Grund dafür, dass die Sitzung nach 20 Minuten verloren geht, darin besteht, dass Sie untätig sind ...
Es gibt viele Gründe, warum die Sitzung möglicherweise gelöscht wird. Sie können die Ereignisprotokollierung für IIS aktivieren und dann in der Ereignisanzeige die Gründe für das Löschen der Sitzung anzeigen. Möglicherweise haben Sie andere Gründe dafür?
Sie können auch die Dokumentation für Ereignismeldungen und die zugehörige Ereignistabelle lesen .
quelle
Wenn Sie die Authentifizierung verwenden, empfehle ich, Folgendes in die Datei web.config aufzunehmen.
In meinem Fall werden Benutzer nach Ablauf der Zeit auf die Anmeldeseite umgeleitet:
quelle
https://usefulaspandcsharp.wordpress.com/tag/session-timeout/
quelle
Seit ASP.Net Core 1.0 (vNext oder welcher Name auch immer dafür verwendet wird) werden Sitzungen unterschiedlich implementiert. Ich habe den Wert für das Sitzungszeitlimit in geändert
Startup.cs
,void ConfigureServices
indem ich Folgendes verwendet habe:Oder wenn Sie die
appsettings.json
Datei verwenden möchten , können Sie Folgendes tun:quelle
Sie finden die Einstellung hier in IIS:
Es kann auf Server-, Website- oder App-Ebene unter "ASP" gefunden werden.
Ich denke, Sie können es hier auf der Ebene web.config einstellen. Bitte bestätigen Sie dies selbst.
quelle
Der Zeitlimitwert für IIS-Sitzungen gilt nur für klassische ASP-Anwendungen. Dies wird in der IIS-Konfiguration gesteuert. In Ihrem Fall Für ASP.NET-Apps gilt nur der von web.config angegebene Zeitlimitwert.
quelle
Das Standard-Sitzungszeitlimit ist in IIS auf 20 Minuten festgelegt
Befolgen Sie die nachstehenden Verfahren für jede im IIS 8.5-Web gehostete Site
quelle
Wenn Sie ein Sitzungszeitlimit für die Website wünschen, entfernen Sie es
Tag aus der Datei web.config.
quelle
Die Timeout-Eigenschaft gibt den dem Session-Objekt für die Anwendung zugewiesenen Timeout-Zeitraum in Minuten an. Wenn der Benutzer innerhalb des Zeitlimits keine Seite aktualisiert oder anfordert, wird die Sitzung beendet.
quelle
Starten Sie den IIS nach dem Ändern des Sitzungszeitlimits in IIS neu. Um dies zu erreichen, gehen Sie zur Eingabeaufforderung. Geben Sie IISRESET ein und drücken Sie die Eingabetaste.
quelle