2

如何调试单个 ASPX 文件?

我对 ASPX 文件有些陌生,但我对 C# 并不陌生。

我认为所有 asp.net c# 项目都作为编译代码在服务器上运行。所以在某个地方有某种二进制文件,或者可能是像 Silverlight 那样的 XAP 文件。

但似乎情况并非如此。有时,您似乎可以拥有一个 ASPX 文件以及代码隐藏 C Sharp 文件,它就像 PHP 文件一样运行。首先,是这样吗?到目前为止我是对的吗?

现在,如果我是 ASPX 文件和 CSHARP 代码隐藏文件的所有者,我将如何在 Visual Studio 中调试它?

如何运行代码?

我的观点是没有要加载的项目。只有一个文件。

设置断点后,就没有什么可运行的了。我尝试附加到加载了 aspx 代码的浏览器,但随后断点变为非活动状态。

该文件是https://www.seattleu.edu/admission/nonMatricLander.aspx

在服务器上只有 aspx 文件和随附的 .cs 文件

这就是全部。没有解决方案文件,没有 default.aspx 文件,除了其他 .aspx 文件和 aspx.cs 文件之外,该目录中没有其他任何内容。

如果它是一个 Web 表单,就会有一个项目文件和/或一个解决方案文件。会有一些编译的,对吧?没有这样的。没有dll文件

4

2 回答 2

7

假设您已经让 ASPX 页面呈现在本地 IIS 服务器上(即通过拖放到默认站点的文件夹)。

在 Visual Studio 中

  • 在您选择的浏览器中打开页面(来自 localhost:....)
  • 调试器 -> 附加到进程
  • 查看 w3wp 是否在列表中,如果没有选中“显示所有用户”复选框,可能需要以管理员身份运行 VS(或具有调试权限的用户)
  • 附加到 w3wp(如有必要,请确保选择正确的 .Net 版本)
  • 打开 ASPX/ASPX.cs 并设置断点
  • 在浏览器中刷新页面以命中断点

注意:创建一个 Web 项目会更容易,因为您将能够使用 VS 提供的本地服务器和更轻松的整体体验。

于 2013-03-21T03:05:00.663 回答
0

通常,DLL 文件不会与实际的 aspx 页面位于同一位置。c-sharp 文件必须编译成 DLL,否则页面将无法运行。我想到了两种不同的可能性:1.) DLL 文件位于另一个文件夹中,您看不到它或没有权限查看它,或者 2.) 该页面最初是在 Visual Studio 中设计的,但是更改为使用 jQuery 或 JavaScript 来处理表单提交。一条线索:

<input type="submit" name="ctl00$ctl00$MainContentPlaceholder$cphBody$btnSubmit"
value="&nbsp;" 
onclick="$(this).hide();$('#Processing').show();return true; 
;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$ctl00$MainContentPlaceholder$cphBody$btnSubmit&quot;, &quot;&quot;, 
true, &quot;&quot;, &quot;&quot;, false, false))" 
id="ctl00_ctl00_MainContentPlaceholder_cphBody_btnSubmit" class="btnSubmit">

WebForm_DoPostBackWithOptions 是一个 .NET 特定功能 - 我认为您可能缺少 DLL,它位于网站的其他位置。

要调试实际的 aspx/aspx.cs 文件本身,我建议将两者都放在一个项目中。这比尝试在 IIS 管理器中移动要容易得多。

于 2013-03-21T03:10:16.147 回答