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

我有一个ASP.NET Web应用程序,并且某些操作在服务器上完全成熟的IIS 8.5中比在Visual Studio的IIS Express中执行速度慢6倍。

如果我试图附上只是调试,我正确地看到w3wp.exe在这里输入图像描述

我无法在Profiler的“附加”对话框中看到w3wp.exe在这里输入图像描述

我以管理员权限运行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)运行的应用程序的Web URL。 如果您还没有这样做,您必须在管理员模式下重新启动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:UsersCsabaDocumentsMyProjectSrchttp_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:UsersCsabaDocumentsMyProjectSrchttp_localhost_8000__170924.vspx
Profiling finished.

数据收集后,我看到一些虚假的错误,在事件日志中指出收集将不会成功。 看起来它能够从第三方库收集数据。 但我不能保证它是100%合法的,因为我这次没有彻底检查它。


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


我遇到了一些试图运行Profiler的问题(尤其是因为Windows家庭版默认没有完整的IIS设置)

由于您运行的是Visual Studio 2017,因此运行新的诊断工具可能会更容易。

诊断工具位于下方

Debug-> Windows->显示诊断工具

它就像分析仪一样提供了Cpu分析和内存分析。
您可以设置断点并分析代码的一小部分。

链接地址: http://www.djcxy.com/p/39153.html

上一篇: How to Performance Profile ASP.NET IIS web application with Visual Studio 2017?

下一篇: How to create green (or blue) squiggle adornments with a Visual Studio extension