救命~~ asp.net调试时,无法定位到dll中的类。 搞了一天啦,, 救命啊~~~
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了救命~~ asp.net调试时,无法定位到dll中的类。 搞了一天啦,, 救命啊~~~相关的知识,希望对你有一定的参考价值。
C# code
if(UserInfo.login(userName,userPass))
ProjectHelper.WriteLog("用户登陆 成功! ");
Response.Redirect("~/manage/index.aspx");
this.msg.Text = @"<script language='javascript'>logined();</script>";
当断点设置在第一句时(红色),提示“没有可用于当前位置的源代码。”
dll我加载了,且程序能直接执行,却无法调试。求高手救命~~~~
我只有这么多分啦 都给啦! 哪位高手能帮吗解决吗?
login方法定义在dll文件中的啊,是无法设置断点的
的就要用sp3的dsound.dll才行 在百度搜索下载dsound.dll的时候要看版本 希望对你有帮助
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快! 参考技术A 传到自定义login这个方法 然后设置断点! 就可以了 然后还不行就Hi 我
我Q 308595369 远程给你看看 参考技术B 你有没有加载进你运行的第一个文件中啊?
调试时无法评估表达式
【中文标题】调试时无法评估表达式【英文标题】:unable to evaluate expression whilst debugging 【发布时间】:2014-02-05 15:51:05 【问题描述】:在调试 asp.net 代码(针对 IIS 运行,并使用 Visual Studio 2013)并在断点中并尝试使用快速监视评估变量时,我经常得到“无法评估表达式”。
从 asp.net 项目文件夹中删除 .suo 似乎可以解决问题(重新加载解决方案后)
这是一个公认的错误吗?现在在不止一台机器上的 Visual Studio 2013 中得到了很多。
【问题讨论】:
我也见过这个。就我而言,我怀疑它与调试加载了多个 AppDomain 的进程有关。您的应用程序池中是否有多个应用程序? 必须在调试模式下编译?是单个项目还是包含多个项目? @jlew 在应用程序池中只有一个应用程序。 tim-schmelter 是的,它编译为调试模式... 出于绝望,我重新启动了我的系统,它神奇地又开始工作了...... 删除 suo。文件对我帮助很大 【参考方案1】:我今天用 VS2013 面对它。
转到工具 --> 选项 --> 调试 --> 常规 --> 滚动到“使用托管兼容模式”的底部并选择该选项。
博客截图(网址如下): 重新开始调试。希望对其他人有所帮助。
下面是什么帮助了我!
Visual Studio 2013 Could not evaluate Expression Debugger Abnormality 结果非常有帮助。
另外,你可以看到@Dreamers 回答Unable to debug managed code using visual studio 2013
【讨论】:
非常感谢。很好的答案。 :) 我这样做了,但没什么区别,多年来我一直在调试 C# 和 C++,在过去的几天里,无论我使用 VS2015 选择什么选项,我都无法查看我的 c++ 成员变量。 按照你的步骤,但仍然没有得到结果!! ! 请注意,某些功能不适用于托管兼容模式(例如实时代码修改、性能测量工具等) 对我来说这个选项是灰色的【参考方案2】:C# 调试引擎严重依赖 CLR 调试器来评估表达式。该消息表明 CLR 处于无法执行简单评估的状态,其原因可能包括以下
一个局部变量被优化掉了 线程在 GC 不安全点停止 先前的函数调用导致调试器进入错误状态,因此根本无法进行进一步评估【讨论】:
这条消息是我只在 vs2013 RTM 中注意到的,不记得在 vs2013RC(和测试版)、2012 或 2010 中注意到它(调试时)。【参考方案3】:其中一些选项会随着时间而变化 - 其他答案中评价最高的解决方案似乎不再存在 - 搜索选项对话框会有所帮助。
现在我找到了一个 ASPNET Core 项目this,启用它似乎有帮助:
抑制模块加载时的 JIT 优化(仅限托管):禁用 加载模块且 JIT 运行时托管代码的 JIT 优化 在附加调试器时编译。禁用优化可能 使调试一些问题变得更容易,尽管代价是 表现。如果您使用 Just My Code,则禁止 JIT 优化可能会导致非用户代码显示为用户代码(“我的 代码”)。更多信息,请参阅 JIT 优化和调试。
如果它似乎没有帮助,我建议再次将其关闭。
【讨论】:
哦,谢谢,仍然适用于 vs 2019 来评估 linq 查询 这有助于我在 2019 年的 Visual Studio 中尝试在运行时调试期间仔细查看数据集。在设置之前,一切都是“无法评估表达式”。【参考方案4】:我在特定项目中遇到过这个问题,原因是 Costura.Fody(将所有 DLL 嵌入到正在执行的程序集中)。
在这种情况下,您可以禁用Costura.Fody.
从 FodyWever.xml 中注释掉 Costura
<Weavers>
<!--<Costura />-->
</Weavers>
在 *.csproj 中禁用干净的引用目标(如果包含)
<!--<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild">
<Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%
(DestinationSubDirectory)%(Filename)%(Extension)')" />
<Exec Command="DeleteEmptyDirectory.bat" />
</Target>-->
【讨论】:
就我而言,这是值得付出努力的解决方案。【参考方案5】:转到Tools --> Options --> Environment --> General -->
,勾选“根据客户端性能自动调整视觉体验”选项。
【讨论】:
以上是关于救命~~ asp.net调试时,无法定位到dll中的类。 搞了一天啦,, 救命啊~~~的主要内容,如果未能解决你的问题,请参考以下文章
解决VS2013调试ASP.NET中无法调试的问题:当前不会命中断点。在 XXXX.dll 中找到了 XXX.cs 的副本,但是当前源代码与 XXXX.dll 中内置的版本不同。
新的 dll 文件上传到 bin 文件夹后的 ASP.NET 运行时错误