Ich entwickle eine ASP.NET 4 App und benutze auch während der Entwicklung vollen IIS (aus verschiedenen Gründen; einen, den ich mehrere Domains verwende, die auf die App verweisen).Delay AppDomain recycle auf Ordnerwechsel
Wenn ich das Projekt in Visual Studio erstellen IIS recycle die AppDomain und lädt die neu erstellte, aber jetzt habe ich das Problem, dass es dies "zu schnell".
Ich habe einige Skripte auf meiner Seite, die einen App-Start auslösen, sobald es recycelt wird (wie ständig offene SignalR-Kanäle) und so eine neue AppDomain bereits erstellt wird, wenn nur die Hälfte meines Projekts gebaut wird und es eine Sekunde wiederverwendet Zeit, die dann tatsächlich abstürzt, weil ich eine PreApplicationStartMethod
habe, die einige Plugin-DLLs in ein Shadow-Copy-Verzeichnis kopiert, aber die "alten DLLs" sind immer noch durch die erste AppDomain gesperrt.
Wenn ich dann ~ 10s warte, ist alles in Ordnung und meine "neue AppDomain" startet.
Ich habe dieses Problem gelöst, indem ich einfach IIS angewiesen habe, einige Sekunden mit dem Empfang zu warten, damit der Build abgeschlossen werden kann, nachdem er die Änderungen im Ordner bin
entdeckt hat.
So zu meiner Hauptfrage:
Ist es möglich, eine AppDomain Recycling unter IIS zu verzögern?
Wenn es nur ein Lock-Problem ist, haben Sie versucht, "Overlapped Recycle" zu deaktivieren, um zwei gleichzeitige Worker-Prozesse zu vermeiden? – JoeBilly