我正在尝试使用一些ASP.NET (vbhtml)组件和一些更常规的HTML5代码来调试一个网络应用程序。它是几年前构建的,广泛使用Knockout。其中一些部件坏了,我正在试着调试它们。
该项目包括一个WebAPI( API 2)和其他一些东西。分离出HTML5部件并使用VSCode对其进行调试并不简单,因此我认为我只能使用Visual Studio。
两天前,我花了几分钟时间设置断点,遍历Javascript代码,发现了一个问题。我不确定我做得对不对。从那时起,我就不能对Javascript组件进行任何调试了。我尝试过使用Visual Studio 2017和2019。
我在选择Chrome并启用脚本调试的情况下运行调试。浏览器一启动,断点就会在其左端显示一条消息:当前不会命中断点。已设置断点,但尚未绑定。
浏览器运行正常,但未命中断点。当检查窗口打开时,我可以看到一些东西正在更新,但没有相关的东西。
我在Visual Studio中设置了一个新的"Browse With“条目。我选择了chrome.exe并在Arguments字段中添加了--remote-debugging port=9222。已保存并开始调试。浏览器打开后,弹出错误消息:无法连接到运行时进程,10000毫秒后超时-(原因:无法连接到目标: connect ECONNREFUSED 127.0.0.1:51772)。
每次发生这种情况时,我都会在最后得到一个不同的端口号。单击“确定”后,调试将停止,浏览器窗口也会关闭。在开始调试之前,我已经绝对确定Chrome是关闭的,以至于运行一个会杀死所有Chrome进程的批处理文件。
经过进一步搜索,我选择了Chrome调试配置,然后选择Debug|Start Without Debug。Chrome启动正常。然后我选择了Attach to process并选择了进程。一切看起来都很好,但断点再次变为非活动状态,并显示“断点将不会被命中”的消息。
我尝试将"debugger;“条目添加到代码中。VS 2019抱怨它们,它们没有任何影响。
如果我尝试使用IE11进行调试,并得到类似的结果。有时我会收到一个错误,告诉我已经连接了另一个调试器,尽管我之前杀死了Chrome。
我不知所措。任何线索都将不胜感激。
抢夺
发布于 2019-06-14 15:48:31
问题肯定出在捆绑包的配置上。在我的例子中,它是一个名为BundleConfig.vb的文件。它似乎将JavaScript和css文件捆绑在一起,以实现更快的站点加载,而不是将每个文件作为单独的HTTP请求加载。
我的文件是这样开始的:
Imports System.Web.Optimization
Public Module BundleConfig
' For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
Public Sub RegisterBundles(ByVal bundles As BundleCollection)
bundles.Add(New ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-3.4.1.min.js",
"~/Scripts/jquery-ui-1.12.1.js"))并像这样结束:
BundleTable.EnableOptimizations = False 'Commented out 190601 to debug scripts
'BundleTable.EnableOptimizations = True
End Sub
End Module如果EnableOptimization为True,您将无法使用Visual Studio或Chrome或IE中的调试工具来调试任何JavaScript。将其注释掉,就可以进行调试了。
https://stackoverflow.com/questions/56395869
复制相似问题