Javascript 还有一个';当前不会命中断点';我的启动项目中的JS文件出错

Javascript 还有一个';当前不会命中断点';我的启动项目中的JS文件出错,javascript,asp.net,asp.net-mvc,razor,Javascript,Asp.net,Asp.net Mvc,Razor,我的公司聘请了另一家公司重新编写我们的janky ASP/VB.NET web应用程序,以使用C#、MVC 5和Razor视图引擎 今天,我们收到了项目,我在确定为什么无法登录应用程序时遇到了一些困难 我们在一个内部测试环境上有一个工作副本设置,但在尝试设置本地开发/测试环境时,我无法启动。我的老板说他也还没有准备好,所以他也帮不了什么忙。我不知道是谁建立了QA的测试环境 无论如何,我已经尽可能地将本地IIS设置与功能测试环境上的设置相匹配。当我启动应用程序并输入凭据时,我只看到一个旋转的“加载

我的公司聘请了另一家公司重新编写我们的janky ASP/VB.NET web应用程序,以使用C#、MVC 5和Razor视图引擎

今天,我们收到了项目,我在确定为什么无法登录应用程序时遇到了一些困难

我们在一个内部测试环境上有一个工作副本设置,但在尝试设置本地开发/测试环境时,我无法启动。我的老板说他也还没有准备好,所以他也帮不了什么忙。我不知道是谁建立了QA的测试环境

无论如何,我已经尽可能地将本地IIS设置与功能测试环境上的设置相匹配。当我启动应用程序并输入凭据时,我只看到一个旋转的“加载”图标,然后该图标消失,什么也不做。如果我输入了错误数据或丢失数据,软件会提示我相应的错误

我试图在JS中设置一个断点,调用该断点来验证登录表单,但我只得到了“断点将不是当前的,没有加载符号”错误

这个解决方案中有4个项目,其中的JS文件位于包含登录页面的启动项目中

此启动项目
MyProject.Web
,包含Views\Central\CentralLogin.cshtml文件和..\Scripts\Central\Central.js文件(视图确实引用了该文件)

我去调试->模块,它告诉我.PDB已经过时了。清理、重建并将文件复制到指定的目录(C:\Windows\SysWOW64\inetsrv\MyProject.Web.pdb)。重新启动应用程序,当我重新打开“符号加载信息”屏幕时,它会显示“符号加载”。尽管如此,在JS中设置断点会产生相同的“未加载符号”错误

我尝试重新启动IIS,重新启动应用程序池,清理并重建我的解决方案,将新pdb复制到它所说的文件夹中。据我所知,我的IIS配置与我们的工作测试站点相匹配。我还尝试将解决方案更改为包含“多个启动项目”,而不是指定单个项目

解决方案配置设置为配置:调试,平台:任何CPU。我试过IE、Chrome和Firefox。所有3个都给出相同的结果

你知道我还能尝试什么吗?我阅读了至少3篇不同的StackOverflow文章,其中引用了这个错误,但没有一个解决方案适合我

我的页面上的按钮定义如下:

<input tabindex="1" name="btnCredLogin" id="btnCredLogin" class=" button button-primary" type="button" value="Login" onclick="ValidateForm();">

在该按钮下方的
标记外,是Razor代码的一段:

@{
    var jsReference = System.Configuration.ConfigurationManager.AppSettings["DOWNLOADVERSION"].ToString();
}

<script src=@Url.Content("~/Scripts/Central/Central.js?v=" + jsReference)></script>
@{
var jsReference=System.Configuration.ConfigurationManager.AppSettings[“DOWNLOADVERSION”].ToString();
}
正是该
Central.js
文件包含按钮单击事件指向的
ValidateForm()
方法。
jsReference
引用的应用程序设置键只包含值
“1.0”
。所以它在寻找
Central.js?v=1.0
。我尝试取消该
?v=1.0
,因此它只指向
Central.js
,但它不会改变结果


我完全不知道为什么我不能调试这个JS文件。有什么线索吗?

我同意VS不是最好的调试工具。我建议使用Chrome。在Chrome开发者工具设置中,点击F1并确保选中“禁用缓存”

为了进行合理性检查,我会破坏您的服务器中央登录代码。我也经历过类似的情况,我指向了错误的服务器。我再也回不去那三个小时了

您的js回调是ValidateForm()。我将在所有文件中搜索该方法名称。可能有另一个js文件在同一个全局js作用域中声明了这一点,并覆盖了您正在查找的那个js文件

然后尝试在Chrome开发工具中打开该页面并转到source选项卡。找到ValidateForm()函数并设置断点,然后重新加载页面


您可以将ValidateForm()函数放在cshtml页面的脚本块中,并发出一个警报,以查看其是否有效

我同意VS不是最好的调试工具。我建议使用Chrome。在Chrome开发者工具设置中,点击F1并确保选中“禁用缓存”

为了进行合理性检查,我会破坏您的服务器中央登录代码。我也经历过类似的情况,我指向了错误的服务器。我再也回不去那三个小时了

您的js回调是ValidateForm()。我将在所有文件中搜索该方法名称。可能有另一个js文件在同一个全局js作用域中声明了这一点,并覆盖了您正在查找的那个js文件

然后尝试在Chrome开发工具中打开该页面并转到source选项卡。找到ValidateForm()函数并设置断点,然后重新加载页面


您可以将ValidateForm()函数放在cshtml页面的脚本块中,并发出一个警报,以查看其是否有效

我几乎放弃了用VisualStudio在javascript中设置断点的尝试。相反,我只是键入调试器;在javascript中。每当使用调试器执行到达行时;它中断了执行,并让我从那里调试。不幸的是,这似乎没有什么区别。我几乎放弃了用Visual Studio在javascript中设置断点的尝试。相反,我只是键入调试器;在javascript中。每当使用调试器执行到达行时;它中断了执行,让我从那里调试。不幸的是,这似乎没有什么不同。