2016-05-26 9 views
2

Ich tauche gerade in Web-API-Entwicklung (ASP.NET 4.6, Visual Studio 2015) und ich habe ein seltsames Problem. Wenn ich meine Webanwendung mit der Startoption "Eine Seite nicht öffnen. Auf eine Anforderung von einer externen Anwendung warten" ausgewählt habe, ist die anfängliche Anforderung, die die Aufgabe auslösen soll, sehr verzögert.Warum werden HTTP-Anforderungen in der ASP.NET-Web-API verzögert?

Zum Beispiel, ich beginne zu debuggen und das VS-Ausgabefenster ist leer. Ich denke, das ist normal. Dann sende ich in Fiddler die erste Anfrage. Die Zeit, die VS benötigt, um Debug-Informationen auszuspucken und die Anwendung tatsächlich hochzufahren, variiert: Manchmal ist es sofort, die meiste Zeit sind es ungefähr 10 Sekunden. Gelegentlich dauert es bis zu 1 Minute. Während dieser Zeit passiert nichts.

Edit:

Klarstellung: dies ist eine Verzögerung, bevor ANYTHING (dh vor dem Bootstrapping/spin-up auftritt) geschieht

Diese geheimnisvolle Verzögerung tritt auch auf, wenn das Projekt mit dem Standard konfiguriert ist, zu starten MVC-Homepage. Und es passiert auch, wenn ohne Debugging ausgeführt wird. Dies geschieht bei einem neuen Projekt, das aus der Vorlage erstellt wurde. Gleiches gilt für die ASP.NET 5-Vorlagen-App. Das passiert auch, wenn ich IIS vollständig ausführe.

Ich frage mich, ob es ein Problem speziell für meinen Computer ist, wie ich alle diese Dinge auf einer anderen Maschine ausprobiert und es gab nie irgendwelche Verzögerungen.

+0

Sie meinen die Verzögerung, wenn asp.net auf erste Anfrage Ihre Website kompiliert? – Will

+1

Nein, eine Verzögerung bevor etwas passiert. Mit anderen Worten, normalerweise 10 Sekunden, nachdem ich die Anfrage gesendet habe, tritt das gesamte Bootstrapping/Spin-Up auf. – BCA

+0

Das ist eine wichtige Klarstellung, sollte wahrscheinlich in [Bearbeiten] gehen. – Will

Antwort

1

Ich fand heraus, was die HTTP-Anfrage hinderte: mein Antivirenprogramm. Ich habe AVG Internet Security Business Edition auf meinem System. Sie mussten lediglich "AVG Protection vorübergehend deaktivieren" auswählen. Boom - sofort, alle meine HTTP-Anfragen kamen sofort durch.

Weitere Informationen: Ich habe versucht, einzelne Komponenten über das AVG-Kontrollfeld zu deaktivieren, aber keine davon hat das Update bereitgestellt. Es scheint leider, dass es mit AVG alles oder nichts ist.

Fazit: zumindest auf meinem System, vollständig AVG deaktivieren (oder vermutlich, die Deinstallation) AVG für ASP.NET-Entwicklung erforderlich ist, wo auf 1 Minute für die erste Anforderung wartet bis werden ist verarbeitet inakzeptabel.

Verwandte Themen