繁体   English   中英

C#Visual Studio启动调试器时挂了很长时间

[英]C# Visual Studio Hanging for a Long Time When Starting Debugger

我的Winforms应用程序引用了一个名为MyUtilities.dll的本地DLL文件。 每当更改任何代码后开始调试我的应用程序时,只要达到使用MyUtilities.dll中的方法对远程SOAP API进行网络调用的程度,VS就会挂起大约90秒钟,并且当我尝试单击内部的任何位置时VS,它弹出显示“正在为MyUtilities.dll加载符号”的弹出窗口。

这是有趣的地方:

  1. PDB文件未使用EFS加密。
  2. 仅“我的代码”调试已启用。
  3. 我什至将MyUtilities.dll添加到了排除列表。
  4. 挂起时,CPU使用率并没有真正上升。
  5. 我曾尝试使用Process Monitor(procmon)来监视活动,但没有发现任何异常,但是我可能看错了东西...
  6. 我同时加载了Fiddler,以查看它是否是一个较长的远程API调用,但是SSL握手和网络调用直到〜90秒结束才开始,并且实际的API调用在不到1秒的时间内返回。
  7. 我尝试将DLL文件复制到SSD上的其他文件夹中,然后从那里引用它,但这没有什么区别。
  8. 如果我在没有任何代码更改的情况下再次启动/重新启动调试器,它将不会冻结。

现在,在它恢复运行之后,我在输出中看到它没有加载符号):

'MyApp.exe' (blah blah): Loaded 'C:\...\bin\Debug\MyUtilities.dll'. Loading disabled by Include/Exclude setting.

关于什么可能导致冻结的任何想法? 我正在运行VS 2017社区。

弄清楚了。 在Process Monitor中进行更多分析之后,我注意到“ MAILSLOT \\ NET \\ NETLOGON”的条目如下:

11:21:04    CreateFile    \\MYPC*\MAILSLOT\NET\NETLOGIN    SUCCESS
11:21:04    WriteFile     \\MYPC*\MAILSLOT\NET\NETLOGIN    BAD NETWORK PATH
11:21:17    CloseFile     \\MYPC*\MAILSLOT\NET\NETLOGIN    SUCCESS

基于此,我发现了这个StackOverflow问题: Visual Studio 2012缓慢的单元测试

...导致我读到这篇文章: https : //social.technet.microsoft.com/Forums/windowsserver/zh-CN/20eb50e9-3e68-4d29-bcdd-a4fc166b9c00/adlds-very-slow-roundtrip-to- servermailslotnetnetlogon?forum = winserverDS

最终结果:进入每个网络适配器,进入其属性,进入Internet协议版本4(TCP / IPv4)属性,进入“高级”->“ WINS”并禁用TCP / IP上的NetBIOS。

完成之后,一切正常(甚至不需要重新启动)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM