脚本调试的限制

更新:2007 年 11 月

本主题适用于:

版本

Visual Basic

C#

C++

Web Developer

速成版

主题不适用 主题不适用 主题不适用 主题适用

标准版

主题适用 主题适用 主题适用 主题适用

专业团队版

主题适用 主题适用 主题适用 主题适用

表格图例:

主题适用

适用

主题不适用

不适用

主题适用,但命令默认情况下隐藏

默认情况下隐藏的一条或多条命令。

Visual Studio 支持对客户端脚本进行调试,但受约于本主题中介绍的限制。

客户端脚本断点映射的限制

利用 Visual Studio,您可以在运行时转换为客户端文件的服务器端 ASPX 或 HTML 文件中设置断点。Visual Studio 会将服务器端文件中的断点映射到客户端文件中的相应断点,但存在下列限制:

  • 断点必须设置在 <script> 块内部。如果断点位于内联脚本或 <% %> 块中,则无法进行映射。

  • 页的浏览器 URL 必须包含页名称。例如 https://microsoft.com/default.apsx。断点映射无法识别从类似 https://microsoft.com 的地址到默认页的重定向。

  • 断点必须设置在由浏览器 URL 指定的页内,而不能设置在该页包括的 ASPX 控件 (ascx) 文件、母版页或其他文件中。如果将断点设置在包括的页中,将无法进行映射。

  • 如果将断点设置在 <script defer=true> 块中,将无法进行映射。

  • 对于设置在 <script id=""> 块中的断点,断点映射将忽略 <script id=""> 属性。

断点映射和重复行

为了查找服务器端脚本和客户端脚本中的对应位置,断点映射算法将逐行检查代码。该算法假定每一行都是唯一的。如果有两行或更多行包含相同的代码,而断点设置在其中一个重复行上,则断点映射算法可能会在客户端文件中选择错误的重复行。若要避免这种情况,请向设置了断点的行中添加一条注释。例如:

i++ ;
i ++; // I added a comment, so this line is now unique
i ++;