fragen stichworte

IIS auf localhost ist sehr langsam

Ich verwende IIS7 auf einer Dual-Core-CPU von Windows Vista. Der erste Treffer bei einem WCF-Dienst oder einem ASP.NET-Webformular dauert manchmal viel länger als eine Minute, was für mich nicht akzeptabel ist.

Ich habe die Anwendung für die Verwendung des Classic .NET-Anwendungspools konfiguriert und habe versucht, mit den Maximum-Worker-Prozessen zu spielen. Zuerst habe ich sie auf 4 gesetzt, aber wieder auf 1 gesetzt, da sie nicht das erwartete Ergebnis hatte . Gibt es noch andere Dinge, die ich ausprobieren kann?

antworten

Überprüfen Sie Ihre web.config-Datei auf den Kompilierungsmodus. Während der Entwicklung sollten Sie Ihre Site im Debug-Modus ausführen. Wenn Sie im Freigabemodus arbeiten, wird jedes aspx und ascx in temporäre Assemblys kompiliert, nicht nur in die Seiten und Steuerelemente, die Sie treffen. Setzen Sie außerdem batch auf false.

<configuration>
    <system.web>
         <compilation debug="true" batch="false" ...>
         ...
         </compilation>
    ...
    </system.web>
    ...

Natürlich werden diese nicht für Produktionsumgebungen empfohlen, die durch diese Änderungen verlangsamt werden.


Überprüfen Sie auch diesen Forumsthread. Dort finden Sie einige interessante Tipps, z. B. das Zurücksetzen der Berechtigungen für den temporären ASP.NET-Ordner:

I had the same problem and made all of the adjustments as mentioned in this forum but it didn't help. I began to suspect that the slow loading time of the dlls had to do with security settings. It appears that access to the dlls goes through security checking that is part of the operating system and not part of VIsual Studio. The dlls are located in a directory for your application under:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\

In order to speed up the security checking, you need to remove all of the security settings on the root folder of your application in the above mentioned directory, or on the directory "Temporary ASP.NET Files" if you want to have it apply to all web applications you develop.

You right mouse click the folder and select Properties -> Security

Remove all users and groups. Some will not be allowed to be removed because they inherit their permissions from their parent folder. You must first remove the inheritance by clicking on the Advanced button and then uncheck the "Inherit from parent..." checkbox. Then remove the user or group. There must not be any users or groups where the checkboxes for their permissions are greyed out. If they are greyed out, it means that you didn't remove the inheritance from their parent.

After you have removed all users and groups from the folder, you then need to add the following users and groups:

Administrators Users ASPNET Network Network Service Local Service

Give each of these accounts full permission. Click on the Advanced button again and check off the "Replace permission entries on all child objects..."

Dies könnte so einfach wie ein DNS-Problem sein. Verwenden Sie beim Zugriff 127.0.0.1 anstelle von localhost. Wenn dies funktioniert, fügen Sie einfach eine 127.0.0.1 zu Ihrer Hosts-Datei hinzu und/oder greifen Sie immer über Ihre localhost-IP zu.

Ist dies das erste Mal, dass Sie auf eine Anwendung zugreifen, nachdem sie erstellt wurde? Dies ist nicht ungewöhnlich, da die Webanwendung Dinge aus den DLLs usw. kompilieren muss und beim nachfolgenden Laden schneller ausgeführt wird.

Wenn dies beim Start der Anwendung geschieht, sollte das Deaktivieren der Einstellung Idle Timeout hilfreich sein, zumindest bis Sie einen Neustart durchführen oder IIS aus einem anderen Grund neu startet. Es bleibt jedoch immer noch eine Frage, warum Ihre Bewerbung so lange dauert, bis sie startet.