C# 附加到未命中断点的进程IIS
当我将Visual Studio连接到在IIS中运行的Asp.Core MVC应用程序时,断点不会被命中。我检查了文件所在的IIS文件夹,里面有所需的.pdb文件。这些文件是通过VS中的“发布”命令创建的C# 附加到未命中断点的进程IIS,c#,asp.net-mvc,iis,C#,Asp.net Mvc,Iis,当我将Visual Studio连接到在IIS中运行的Asp.Core MVC应用程序时,断点不会被命中。我检查了文件所在的IIS文件夹,里面有所需的.pdb文件。这些文件是通过VS中的“发布”命令创建的 我不知道您需要我在这里共享什么,因此很抱歉提供了这么多信息。首先,请确保web.config文件中的debug属性为true 如果调试器未加载.pdb文件,则无法命中Breakpiont。因此,请确保这些符号是由调试器加载的。我们可以通过以下步骤(调试->窗口->模块)检查调试器是否加载此p
我不知道您需要我在这里共享什么,因此很抱歉提供了这么多信息。首先,请确保web.config文件中的debug属性为true
如果调试器未加载.pdb文件,则无法命中Breakpiont。因此,请确保这些符号是由调试器加载的。我们可以通过以下步骤(调试->窗口->模块)检查调试器是否加载此pdb文件,然后选择dll模块以查看是否加载了pdb文件。如果未加载pdb文件,我们可以手动加载(右键单击dll模型->选择加载符号)。首先,请确保web.config文件中的debug属性为true
如果调试器未加载.pdb文件,则无法命中Breakpiont。因此,请确保这些符号是由调试器加载的。我们可以通过以下步骤(调试->窗口->模块)检查调试器是否加载此pdb文件,然后选择dll模块以查看是否加载了pdb文件。如果未加载pdb文件,我们可以手动加载(右键单击dll模型->选择加载符号)。我假定您指的是完整的IIS,而不是IIS Express 在Visual Studio的项目属性中检查“Web”设置。您正在寻找三件事:
请查看此处的说明,包括屏幕截图:我想您指的是完整的IIS,而不是IIS Express 在Visual Studio的项目属性中检查“Web”设置。您正在寻找三件事:
查看此处的说明,包括屏幕截图:我最喜欢的在本地调试IIS/IIS Express的技巧是添加一点代码 在Global.asax.cs的某个地方
public static void Application_Initialize() {
AttachDebugger();
...
}
[Conditional("DEBUG")]
private void AttachDebugger() {
if (!System.Diagnostics.Debugger.IsAttached()) {
System.Diagnostics.Debugger.Launch();
}
System.Diagnostics.Debugger.Break();
}
我最喜欢的在本地调试IIS/IIS Express的技巧是添加一点代码 在Global.asax.cs的某个地方
public static void Application_Initialize() {
AttachDebugger();
...
}
[Conditional("DEBUG")]
private void AttachDebugger() {
if (!System.Diagnostics.Debugger.IsAttached()) {
System.Diagnostics.Debugger.Launch();
}
System.Diagnostics.Debugger.Break();
}
请确保您的项目Url键入正确。在我的情况下,文件夹名称在主机名之后丢失,即http://localhost/网络应用程序, 这导致断点不会被命中。
请确保正确键入项目Url。在我的情况下,文件夹名称在主机名之后丢失,即http://localhost/网络应用程序, 这导致断点不会被命中。
您是以调试而不是发行版发布的吗?是的,我是以调试集发布的。您是以调试而不是发行版发布的吗?是的,我是以调试集发布的。我没有web.config。此外,模块窗口中没有Gorilla.WebApi.dll文件。我们可以按照以下步骤进行操作。我们可以通过以下步骤(调试->窗口->模块)检查调试器是否加载此pdb文件,然后选择您的dll模块以查看是否加载了pdb文件。如果没有加载pdb文件,我们可以手动加载它(右键单击dll模型->选择加载符号)。但是只有System32.dll文件,因此我无法加载项目的符号。请执行此调试->删除所有断点(),然后您可以再次使用它们,但只需执行一次。它还将删除一些“无效”断点,然后在没有web.config的情况下快速加载符号。此外,模块窗口中没有Gorilla.WebApi.dll文件。我们可以按照以下步骤进行操作。我们可以通过以下步骤(调试->窗口->模块)检查调试器是否加载此pdb文件,然后选择您的dll模块以查看是否加载了pdb文件。如果没有加载pdb文件,我们可以手动加载它(右键单击dll模型->选择加载符号)。但是只有System32.dll文件,因此我无法加载项目的符号。请执行此调试->删除所有断点(),然后您可以再次使用它们,但只需执行一次。它也会删除一些“无效”断点,然后加载符号会很快,但不会成功。我按照您提供的microsoft站点上的说明进行了检查,检查了“我做得都正确”,但我的断点从未命中。您的回答为我指出了解决方案。我总是附加到w3wp.exe,但我需要附加到dotnet.exe哦,您正在手动附加到进程。有什么原因吗?使用我描述的安装程序,当您开始调试时,它将自动运行。这是我的解决方案--我的环境选择了IIS Express而不是本地IIS。仍然没有成功,我按照您提供的microsoft站点上的说明进行了操作,并检查了“我是否都正确”,但我的断点从未命中。您的回答将我指向了解决方案。我总是附加到w3wp.exe,但我需要附加到dotnet.exe哦,您正在手动附加到进程。有什么原因吗?使用我描述的设置,当您开始调试时,它将是自动的。这是我的解决方案--我的环境选择了IIS Express而不是本地IIS。Man。。。非常感谢。NP请别忘了投票。我仍然在asp.net内核和azure函数本地调试中使用它。。。非常感谢。NP请别忘了投票。我仍然在asp.net核心和azure函数本地调试中使用它。