2017-04-11 280 views
5

我有一個ASP.NET Web應用程序,並且某些操作在服務器上完全成熟的IIS 8.5中比在Visual Studio的IIS Express中執行速度慢6倍。如何使用Visual Studio 2017配置文件ASP.NET IIS Web應用程序?

如果我想嘗試只是調試我看到正確w3wp.exe附: enter image description here

我看不到w3wp.exe在Profiler的連接的對話框。 enter image description here

我使用管理員權限運行VS 2017。這不是一個遠程調試場景,成熟的IIS和調試工具都位於同一臺服務器上(Windows Server 2012 R2 Essentials如果重要)。我正在使用Visual Studio 2017社區版。

如何在IIS中調試我的應用程序,以便我能弄清楚爲什麼它的速度慢了6倍?它讓我感到暈眩,因爲通常情況是這樣:調試和配置文件版本比發佈版本慢得多。

我們的服務器BTW是非常有限的內存。有兩個開發人員同時工作,並且16GB物理內存(不可升級)很容易被佔用。所以我想常規的IIS在所有開發人員工具,SQL Server等內存中受到擠壓。這可能是緩慢的原因,但我不想要猜測遊戲,我希望看到配置文件會話。分析VS的IIS Express非常容易BTW。如果我正確地看到它,Visual Studio 2015甚至沒有提供正在運行的進程的分析。


Rob很簡潔。首先,您需要以管理員模式啓動Visual Studio。除了在開始時選擇ASP.NET作爲Analysis Target之外,一旦Profiling Wizard出現在第2頁上,您必須再次選擇「An ASP.NET應用程序」而不是您的可用項目,否則Visual Studio只會啓動服務器。之後,我指定由本地(非開發人員)IIS服務器運行的應用程序的網址(http://localhost:8000)。如果您還沒有這樣做,您必須在管理員模式下重新啓動VS。然後,性能輸出的樣子,如果VS啓動另一臺服務器:

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. 

數據收集後,我看到了一些虛假的錯誤詮釋,他的事件日誌,說明該集合將不會成功。看起來它能夠從第三方庫收集數據。但我不能保證它是100%合法的,因爲我這次沒有徹底檢查它。

回答

3

選擇分析目標時選擇「ASP.NET」而不是「Running Process ...」。

+0

我在四月肯定會嘗試這種做法,但當我有時間時我會再試一次 –

+0

我幾乎寫了自己的答案,一句話很簡潔,還有其他幾個選項需要考慮。無論如何,我把它添加到我的問題。 –

相關問題