.Net 4 ständig verschwenden einen CPU-Kern auf StrongNameSignatureVerification

Haben wir eine mixed-mode Montage-Anwendung (MFC+WinForms) läuft .Net 4, Windows 2008 R2, der ständig 100% cpu auf einem thread.

Mit ProcessExplorer sehen wir die folgenden Stapel auf den thread ausgelastet. Wir können auch sehen, weitere 10 threads mit nur 0,01% der CPU ausgeführt werden clr.dll!StrongNameSignatureVerification.

Den Spinnen-thread nicht verhindern, dass der rest der Anwendung ausgeführt wird, aber verschwendet CPU-Zeit.

Den stack-trace der thread ausgelastet ist wie folgt:

ntoskrnl.exe!IoAcquireRemoveLockEx+0xe7
ntoskrnl.exe!memset+0x22a
ntoskrnl.exe!KeWaitForSingleObject+0x2cb
ntoskrnl.exe!KeDetachProcess+0x120d
ntoskrnl.exe!PsReturnProcessNonPagedPoolQuota+0x3a3
ntoskrnl.exe!CcSetDirtyPinnedData+0x433
mscorlib.ni.dll+0x2b066a
mscorlib.ni.dll+0x2317ac
mscorlib.ni.dll+0x2b066a
mscorlib.ni.dll+0x2317ac
mscorlib.ni.dll+0x26ccf7
mscorlib.ni.dll+0x237fc4
mscorlib.ni.dll+0x26cc3c
clr.dll+0x21bb
clr.dll!CoUninitializeEE+0xee9b
clr.dll!CoUninitializeEE+0x11463
clr.dll!CoUninitializeEE+0x114dc
clr.dll!CoUninitializeEE+0x1154b
clr.dll!StrongNameErrorInfo+0xa638
clr.dll!StrongNameSignatureVerification+0x144fb
clr.dll!StrongNameSignatureVerification+0x1457d
clr.dll!StrongNameSignatureVerification+0x14638
clr.dll!StrongNameSignatureVerification+0x146d2
clr.dll!StrongNameErrorInfo+0x9977
clr.dll!StrongNameErrorInfo+0xa5bc
clr.dll!StrongNameErrorInfo+0xa553
clr.dll!StrongNameErrorInfo+0xa517
clr.dll!StrongNameErrorInfo+0xa151
clr.dll!StrongNameErrorInfo+0x9501
clr.dll!StrongNameErrorInfo+0xad67
clr.dll!StrongNameSignatureVerification+0x164d9
ntdll.dll!RtlCreateUserProcess+0x8c
ntdll.dll!RtlCreateProcessParameters+0x4e

Nur ähnlichen Bericht habe ich in der Lage zu finden, ist in dieser Frage: clr.sll!StrongNameSignatureVerification CPU-Verbrauch obwohl der thread scheint gegangen zu kalt.

Wir nicht Unterschreiben unseren Versammlungen und sind bereit, Ihnen zu Vertrauen, ist es ein Weg, um vollständig zu deaktivieren Sie das strong name-überprüfung?

  • Hast du das schon gesehen? msdn.microsoft.com/en-us/library/cc713694.aspx
  • ja, von meinem Verständnis dieser deaktiviert die 'bypass' wodurch alle Baugruppen unterliegen strong name-überprüfung der Unterschrift, Art das Gegenteil von dem, was ich bin nach.
  • Oh, sorry, du hast Recht. Was ist mit diesem: ryangerard.net/post/8768827919/...
  • Das könnte eine Letzte resort als würde es verlangen, dass die Deaktivierung der überprüfung auf jeder Maschine den code bereitgestellt wird. Sind wir nicht eigentlich immer irgendwelche starken Namen Fehler und sind unsicher, welche (wenn überhaupt) DLLs die überprüfung verbringt all seine Zeit auf, so dass die Deaktivierung der überprüfung ist nicht einfach.
  • Wäre es möglich, eine genauere stack-frame, um mehr Informationen darüber, was Los ist??? Zum Beispiel, wenn Sie den debug-Prozess mit Visual Studio oder Windbg, aber mit Microsoft Symbole geladen korrekt konfiguriert? (support.microsoft.com/kb/311503)
  • Ich habe auch dieses Problem, und ich sehe die gleiche Art von Stapel. Ich versuchte, um die sym-server in den Prozess-explorer direkt aber fat chance.

InformationsquelleAutor chillitom | 2013-02-19
Schreibe einen Kommentar