2017-04-11 41 views
5

Mam aplikację sieci web ASP.NET, a niektóre operacje są wykonywane 6 razy wolniej w pełnych wersji IIS 8.5 na serwerze w porównaniu z IIS Express Visual Studio.Jak osiągnąć wydajność Profil aplikacji sieci web ASP.NET IIS z Visual Studio 2017?

Gdybym próby dołączenia do debugowania I właściwie tylko zobaczyć w3wp.exe: enter image description here

nie widzę w3wp.exe w oknie dialogowym Dołączanie profilera jest. enter image description here

Używam VS 2017 z uprawnieniami administratora. Nie jest to scenariusz zdalnej debugowania, zarówno pełnoprawne usługi IIS, jak i narzędzia do debugowania znajdują się na tym samym serwerze (w przypadku Windows Server 2012 R2 Essentials, jeśli ma to znaczenie). Używam Visual Studio 2017 Community Edition.

Jak mogę debugować moją aplikację w IIS, aby dowiedzieć się, dlaczego jest tam 6 razy wolniej? Ogłusza mnie, ponieważ zazwyczaj jest odwrotnie: wersje debugowania i profilu są znacznie wolniejsze niż wersje release.

Nasz serwer BTW ma bardzo ograniczoną pamięć. Deweloperzy pracują jednocześnie, a pamięć fizyczna 16 GB (niestety nie do uaktualnienia) jest łatwa do opanowania. Sądzę więc, że zwykłe IIS jest w wyciskaniu pamięci przez wszystkie narzędzia programistyczne, SQL Server itp. To może być powód powolności, ale nie chcę zgadywania, chciałbym zobaczyć sesję profilu. Profilowanie IIS Express VS było bardzo proste BTW. Jeśli widzę to poprawnie, Visual Studio 2015 nie oferuje nawet profilowania działającego procesu.


Rob był dość szorstki. Najpierw należy uruchomić Visual Studio w trybie Administratora. Oprócz wybrania ASP.NET jako celu analizy na początku, po pojawieniu się kreatora profilowania na stronie 2, musisz jeszcze raz wybrać "aplikację ASP.NET" zamiast swojego dostępnego projektu, w przeciwnym razie Visual Studio uruchomi serwer. Następnie na stronie 3 z 4 określam URL strony internetowej aplikacji uruchomionej przez mój lokalny (nie deweloperski) serwer IIS (http://localhost:8000). Tutaj musisz ponownie uruchomić VS w trybie Administratora, jeśli tego nie zrobiłeś. Wtedy Wyjście Wydajność wygląda jeśli VS rozpoczął inny serwer:

Preparing web server for profiling. 
Profiling started. 
Launching web server with profiling. 
Profiling process ID 872 (w3wp). 
Starting data collection. The output file is C:\Users\Csaba\Documents\MyProjectSrc\http_localhost_8000__170924.vspx 
Profiling process ID 8416 (iexplore). 
Attaching to process 8416. 
Profiler stopping. 
Stopping data collection. 
Merging collection data. Please wait... 
Data is saved in file C:\Users\Csaba\Documents\MyProjectSrc\http_localhost_8000__170924.vspx 
Profiling finished. 

Po zebraniu danych Widziałem kilka fałszywych błędy int on dziennik zdarzeń stwierdzając, że kolekcja nie będzie skuteczne. Pozornie był w stanie zbierać dane z biblioteki innej firmy. Ale nie mogę zagwarantować, że jest to w 100% legalne, ponieważ tym razem nie zbadałem go dokładnie.

Odpowiedz

3

Wybierz „ASP.NET” zamiast „zakonczeniu ...” przy wyborze celu analizy.

+0

I pewnie próbowała że już w kwietniu, ale dam mu jeszcze jedną szansę, kiedy mam czas –

+0

Prawie napisał własną odpowiedź, że jedno zdanie jest dość dość lakoniczny, istnieje kilka innych opcji, które należy rozważyć. W każdym razie dodałem to do mojego pytania. –