2016-05-10 11 views
2

Ich habe eine kompilierte ASP.NET Webforms-Website, die einwandfrei auf meinem lokalen Computer funktioniert. Sobald die Site auf die Live-Server (eine Bank von 10 Servern mit IIS8 auf Windows Server 2012) hochgeschoben wird, wird die Site bei jeder Anfrage neu kompiliert.ASP.NET kompiliert bei jeder Anforderung

Wenn ich in das temporäre ASP.NET-Dateien-Verzeichnis gehe, gibt es App_Web-DLLs für alle Benutzersteuerelemente auf der Website zusammen mit .delete-Dateien für alle Binärdateien, was meiner Meinung nach die appdomain veranlasst, jedes Mal neu zu starten.

App_Web_course.aspx.cdcab7d2.ijbbuqi7.dll App_Web_course.aspx.cdcab7d2.ijbbuqi7.dll.delete

Es läuft gelegentlich OK auf einigen Servern und wenn ich am Temp aussehen. NET-Dateien auf diesen Servern sind die .delete-Dateien nicht vorhanden.

Ich ziehe meine Haare aus, In 17 Jahren der Entwicklung habe ich das nie zuvor gesehen und es scheint keinen Sinn oder Grund dafür zu geben.

Update: Wenn jemand anderes dies erfährt, überprüfen Sie bitte meine Antwort unten für meine Entschließung.

+1

Versuchen Sie und starten Sie hier: https://msdn.microsoft.com/en-us/library/ms366723.aspx - Ihre Erwähnung von temporären Dateien ist, wo ich anfangen würde. –

+0

Haben Sie überprüft, wie oft der App Pool für diese App recycelt wird? – Kamo

Antwort

0

Ich habe ein Update und eine Lösung für das Problem.

Zum Zeitpunkt des ursprünglichen Beitrags hatte ich ausgelassen, dass die Dateien auf einer SMB-Netzwerkfreigabe befanden. Dies ist der Grund für diese ständige Neukompilierung aufgrund des fcnMode von ASP.NET.

Process Monitor zeigte Tausende von Anforderungen durch w3wp.exe für "FileChangeNotify", die bei einem kritischen Verzeichnis wie "bin" eine Neukompilierung und einen Neustart der Anwendung verursachen würde.

Zum Glück gibt es eine einzige Zeile zu beheben. In der web.config (n) Ihres Projekts ändern Sie die folgende Zeile das folgende Attribut enthalten:

<httpRuntime fcnMode="Disabled" /> 

Dies wird ASP.NET stoppen Ihre Netzwerkverzeichnis für konstante Dateiänderungen zu scannen.

1

Mögliche Ursachen, die Neukompilierung verursachen.

  • Sie aktualisieren die web.config
  • Sie erstellen/löschen Sie die app_offline.htm-Datei auf der Wurzel.
  • Sie erstellen/ändern, dass .aspx oder .aspx.cs Datei
  • Sie erstellen/Ändern von Dateien auf App_Code Ordner
  • Sie haben einige Upload-Ordner unbeaufsichtigt gelassen und Benutzer aspx Dateien hochladen.
  • Sie Zeit/Datum auf dem Computer ist falsch (einige Jahre zurück)

können Sie die Process Monitor verwenden, um zu sehen, was aus allen passiert, wenn man es auf Code nicht finden können oder nicht wissen, was andere Bibliotheken tun.

+0

Ich kann bestätigen, dass ich nichts davon tue. Die Site ist kompiliert, so dass sich alle aspx.cs-Dateien in einer DLL befinden. –

+0

@DavidRabbich Verwenden Sie den Prozessmonitor, um zu sehen, was vor sich geht ... was ist die Änderung und verursachen die Neukompilierung. – Aristos

Verwandte Themen