【问题标题】:How can I debug an Web (ExtJS) .Net application如何调试 Web (ExtJS) .Net 应用程序
【发布时间】:2017-10-24 00:48:36
【问题描述】:

我继承了一个使用 ASP.NET Web 处理程序(ashx 文件)访问数据库的 ExtJS 项目。

我正在尝试调试与代码的 C# 部分中的数据库的连接。

我尝试在连接到我的数据库之前添加一个断点,但我似乎无法让应用程序停在那里。它们仅在调试执行期间短暂变白。当它处于该状态时,将鼠标悬停在断点上会显示:

The breakpoint will not currently be hit. No symbols have been loaded for this document.

我一直在这个question,没有更好的结果

在模块窗口中,DLL 的符号状态确实显示已加载符号。

dll/pdb 似乎都被复制到 C:\Users\myid\AppData\LocalTempTemporary ASP.Net Files\etc。 (这看起来很奇怪,因为我希望它附加到我的工作文件夹中的 .dll 上)有没有办法让调试器改为查看那里?

当然没有 exe,因为这是一个网络应用程序。

我已经:

  • 尝试清理解决方案并重新构建,包括从存储库中重新提取。
  • 已验证构建已选中“定义调试常量”和“定义跟踪常量”
  • 删除了Temporary ASP.NET的内容
  • 检查项目是否设置为Debug
  • 检查了“仅我的代码”在“调试”/“常规”中是否被禁用
  • 完全重启工作站
  • 检查解决方案是否启动了正确的项目(其中只有一个)
  • 检查了我正在调试中构建(不是发布)
  • 对代码进行了一些小改动以强制重新编译
  • 检查在附加到进程中选择了“自动确定要调试的代码类型”
  • 以管理员身份运行
  • 选中的优化代码未在项目属性中打开
  • 检查“使用托管兼容模式”是否已关闭 没有涉及 aspx,因此 CodeBehind/CodeFile 问题没有实际意义。

除此之外,这些答案非常重复,或者我随机尝试了一些东西并且它起作用了。

我错过了什么?您是否应该对项目做一些基本的事情,这样它就可以让您调试原始开发人员可能没有做的 DLL(不,它们对我不可用)?

【问题讨论】:

标签: asp.net .net visual-studio extjs visual-studio-2013


【解决方案1】:

问题已解决...

最终有两个问题。

最初,该 DLL 被编译为 32 位 DLL,它不能很好地与数据库(Oracle 64 位)配合使用。切换平台目标应该已经解决了这个问题,除了 IE 的网页缓存隐藏了我现在得到一个经典的“无法加载文件或程序集 xxx 或其依赖项之一”的事实。错误。 [顺便说一句,我现在已经将他的缓存设置为在退出时清除]

这个错误是由运行在 32 位版本而不是 64 位版本的 IIS Express 引起的。这意味着 DLL 从未真正运行,并解释了“没有为此文档加载任何符号”。警告。

然后通过转到工具 -> 选项 -> 项目和解决方案 -> Web 项目并打开 Make sure that Use the 64 bit version of IIS Express for web sites and projects 来解决这个问题。

清理并重建,一切正常

【讨论】:

    猜你喜欢
    • 2011-03-21
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    相关资源
    最近更新 更多