Teilen Sie die Probleme und Lösungen mit, die beim Veröffentlichen von zwei ASP.NET-Websites auftreten

Y2J
Freigeben: 2017-04-28 10:27:57
Original
2119 Leute haben es durchsucht

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>-->
Nach dem Login kopieren
Lösung für den langsamen ersten Zugriff auf die ASP.NET-Website

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-Modus

schließt die Sitzung.

Um die Sitzung für die gesamte Site zu schließen, können Sie in den Abschnitt in der Web.Config-Datei schreiben:

Um die Sitzung auf einer Seite zu schließen, fügen Sie auf der Seite Folgendes hinzu:

<%@ Page EnableSessionState="false" %>


2. InProc-Modus (Standardmodus)

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.

Der InProc-Modus basiert auf dem ASP.NET-Prozess. Wenn der IIS-Prozess abstürzt oder neu gestartet wird, geht der im Prozess gespeicherte Sitzungsstatus verloren.

3. StateServer-Modus

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:

[Serializable]

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.

4. SQLServer-Modus

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage