Seien Sie vorsichtig mit den Fallstricken beim Veröffentlichen einer ASP.NET-Website. Warum friert jede Seite ein, wenn Sie sie zum ersten Mal nach der Veröffentlichung der Website öffnen? Wie kann der häufige Verlust von ASP.NET-Sitzungen behoben werden? Es hat einen bestimmten Referenzwert. Interessierte Freunde können darauf verweisen
Entwicklungstools: VS2010, MVC4.0, SQLSERVER2008
Server: Windows Server 2012, IIS8, SQLSERVER2012
1. Nach der Veröffentlichung bleibt jede Seite beim ersten Öffnen 50 Sekunden oder länger hängen. Beim zweiten Öffnen geschieht dies jedoch sehr schnell Grund: langsame Kompilierungsgeschwindigkeit, aber das Veröffentlichen auf einer Maschine mit einer VS-Umgebung klemmt nicht so sehr
Lösung: Verwenden Sie eine höhere Version von VS, „Vorkompilierung während der Veröffentlichung“; Funktion von IIS8 1. Verwenden von VS2017 „Während der Veröffentlichung vorkompilieren“Beim Veröffentlichen ist ein Fehler aufgetreten:
Es ist ein Fehler, einen mitallowDefinition='MachineToApplication' registrierten Abschnitt außerhalb der Anwendungsebene zu verwenden. Dieser Fehler kann verursacht werden, wenn das virtuelle Verzeichnis nicht als Anwendung in IIS konfiguriert ist. Lösung:Kommentieren Sie den folgenden Code in web.config, wenn Sie
2 veröffentlichen. Verwenden Sie die Anwendungsinitialisierungsfunktion von IIS8
<!--<authentication mode="Forms"> <forms loginUrl="~/Account/Login" timeout="2880" /> </authentication>-->
2. Das Problem des häufigen ASP.NET-Sitzungsverlusts
Problem: Die Sitzung geht etwa 30 Sekunden nach der Anmeldung verloren und Sie müssen sich erneut anmelden.
Lösung: ASP.NET verfügt über mehrere Sitzungsstatusmodi. Der Standardwert ist „InProc-Modus“, und das Problem wird gelöst. 1. Aus-Modusschließt die Sitzung.
Um die Sitzung für die gesamte Site zu schließen, können Sie in den AbschnittUm die Sitzung auf einer Seite zu schließen, fügen Sie auf der Seite Folgendes hinzu:
Wenn der SessionState-Modus nicht in der Datei Web.config konfiguriert ist, ist der Standardmodus der InProc-Modus.
Wenn Sie die Parameter des InProc-Modus anpassen möchten, müssen Sie die Datei Web.config schreiben, zum Beispiel:Cookieless legt fest, ob Cookies nicht verwendet werden dürfen, und Timeout legt das Timeout in Minuten fest.
StateServer-Modus speichert Sitzungsdaten in einem separaten Speicherpuffer, der von einem Windows-Dienst „ASP.NET“ betrieben wird State Service“ (muss im Windows-Dienst aktiviert sein) Um diesen Puffer zu steuern, müssen Sie stateConnectionString festlegen:
Bei Verwendung des StateServer-Modus müssen alle Klassen, die in der Sitzung gespeichert werden müssen, serialisierbar sein:
public Klasse SomeClass { }
Der Vorteil des StateServer-Modus besteht darin, dass er unabhängig vom IIS-Prozess ist und der Neustart der IIS-Anwendung keine Auswirkungen auf die Sitzungsdaten hat.
Verwenden Sie SQL Server, um die Sitzung zu speichern. Auch wenn IIS neu gestartet wird, geht die Sitzung nicht verloren. Sie müssen zuerst die ASPState-Datenbank erstellen. Spezifische Methoden finden Sie online.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich sein wird. Ich hoffe auch, dass jeder Script House unterstützt.Das obige ist der detaillierte Inhalt vonTeilen Sie die Probleme und Lösungen mit, die beim Veröffentlichen von zwei ASP.NET-Websites auftreten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!