如何调试Web(ExtJS).Net应用程序

时间:2017-05-23 21:34:51

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

我继承了一个使用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
  • 检查了" Just My Code"在Debug / General
  • 中被禁用
  • 完全重启工作站
  • 检查解决方案是否启动了正确的项目(其中只有一个项目)
  • 选中我在调试中构建(不是发布)
  • 对代码进行了少量更改以强制重新编译
  • 检查"自动确定要调试的代码类型"在“附加到流程”
  • 中选择
  • 以管理员身份运行
  • 已选中项目属性中未启用优化代码
  • 检查了"使用托管兼容模式"被关闭了 没有涉及aspx,因此CodeBehind / CodeFile问题没有实际意义。

除此之外,答案是非常重复的,或者我随意尝试了一些事情并且有效。

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

1 个答案:

答案 0 :(得分:0)

问题解决了......

最终有两个问题。

最初,DLL已被编译为32位DLL,它对数据库(Oracle 64位)并不好用。切换平台目标应该已经解决了问题,除了IE浏览器的网页缓存隐藏了这样一个事实:我现在正在获得一个经典的"无法加载文件或程序集xxx或其中一个依赖项。&# 34;错误。 [顺便说一下,我现在已经设置缓存以便在退出时清除]

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

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

清洁和重建,一切都运作起来嘀嗒嘀嗒