如何使用Visual Studio 2017配置文件ASP.NET IIS Web应用程序?

问题描述:

我有一个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%合法的,因为我这次没有彻底检查它。

选择分析目标时选择“ASP.NET”而不是“Running Process ...”。

+0

我在四月肯定会尝试这种做法,但当我有时间时我会再试一次 –

+0

我几乎写了自己的答案,一句话很简洁,还有其他几个选项需要考虑。无论如何,我把它添加到我的问题。 –