当我将Visual Studio附加到在IIS中运行的Asp.Core MVC应用程序时,断点不会被击中。我检查了我放入文件的IIS文件夹,里面有所需的.pdb文件。这些文件是通过VS中的publish命令创建的。
我不知道你需要我在这里分享什么,很抱歉这几个信息。
我假设您的意思是完整的IIS,而不是IIS Express。
检查Visual Studio中“项目属性”中的“Web”设置。你正在寻找三件事:
在这里查看说明,包括屏幕截图:https://docs.microsoft.com/en-us/visualstudio/debugger/how-to-enable-debugging-for-aspnet-applications?view=vs-2017#debug-aspnet-apps
首先,请确保web.config文件中的debug属性为true。
如果调试器未加载.pdb文件,则无法命中Breakpiont。因此,请确保调试器加载符号。我们可以通过以下步骤(Debug-> Windows-> Modules)检查调试器是否加载此pdb文件,然后选择您的dll模块以查看是否加载了pdb文件。如果未加载pdb文件,我们可以手动加载它(右键单击dll模型 - >选择加载符号)。
我最喜欢在本地调试IIS / IIS Express的技巧是添加一些代码。
在Global.asax.cs中的某个地方
public static void Application_Initialize() {
AttachDebugger();
...
}
[Conditional("DEBUG")]
private void AttachDebugger() {
if (!System.Diagnostices.Debugger.IsAttached()) {
System.Diagnostics.Debugger.Launch();
}
System.Diagnostics.Debugger.Break();
}