簡體   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