Asp.net windbg超高负载sos clr

Asp.net windbg超高负载sos clr,asp.net,debugging,memory,windbg,sos,Asp.net,Debugging,Memory,Windbg,Sos,我不确定windbg是否是正确的工具,但这正是我现在正在尝试的 我的asp.net应用程序似乎有内存泄漏,几乎每次加载一个页面时,它都会以大约3MB的速度不断增长(然后又会下降…) 我想读取整个进程内存,看看到底存储了什么是不必要的 所以我运行windbg,连接到webserver40.exe进程 然后我试着 .loadby sos clr 我得到 调用LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos)失败,Win32错

我不确定windbg是否是正确的工具,但这正是我现在正在尝试的

我的asp.net应用程序似乎有内存泄漏,几乎每次加载一个页面时,它都会以大约3MB的速度不断增长(然后又会下降…)

我想读取整个进程内存,看看到底存储了什么是不必要的

所以我运行windbg,连接到webserver40.exe进程

然后我试着

.loadby sos clr
我得到

调用LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos)失败,Win32错误0n193 %1不是有效的Win32应用程序

请检查调试器配置和/或网络访问

似乎我在Framework和Framework64中有这个sos.dll

我试着用这两种方法

.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos
但什么也装不下

我不明白为什么它在寻找一个32位的应用程序。我在一台64位windows的64位pc上

我怎样才能让这个sos东西加载

当我开始的时候,我也收到了这个警告

警告:进程7240未作为调试对象附加 可以检查进程,但不会接收调试事件

我还尝试了sos mscorwks加载
loadby
,但它不起作用,但我知道已经停止了。我在asp.NET4中

我还读到,在加载sos之前,代码应该在调试中停止,这只是挂起VS 2010

多谢各位


再说一次,如果有其他工具可以更好地帮助我,我洗耳恭听:-)

WebDev.WebServer40.exe是一个32位的可执行文件。要调试,您需要使用32位WinDbg。VisualStudio以及Callipso服务器仍在32位模式下执行

关于你的另一个问题。是的,WinDbg是调查托管代码中内存泄漏的一个很好的工具。会让你开始的。然而,在你的情况下,我不会那么肯定你有内存泄漏

  • 你是说记忆最终会消失。这意味着它不是内存泄漏,因为泄漏的内存永远不会被释放
  • 不要浪费时间调查Callipso中的内存问题。IIS和Callipso之间存在很多差异,这会使您的发现不适用于生产环境。即使您发现Callipso实际上正在泄漏,也不意味着IIS会泄漏
你好。谢谢。我确实读到我需要32位版本。但是微软的下载页面只有一个版本。在哪里可以获得32位版本?其他信息看起来也很有帮助,我会让2个人一步一步地做。[从技术上讲,这可能不是一个漏洞,但我想我还有一些东西需要调试,不是吗?]。谢谢。在安装Windows调试工具时,我能够找到WinDbg的两个版本。在该下载页面上,您将找到有关选择调试工具的说明。您将需要使用第二个选项:
选择*Redistributable Packages*下的*debuging Tools*选项,下载所有三个版本的调试工具(x86、x64、安腾)。