Wir haben eine Assembly-Anwendung (MFC + WinForms) im gemischten Modus auf .Net 4, Windows 2008 R2, die ständig 100% CPU in einem Thread verwendet..Net 4 verschwenden ständig einen CPU-Kern auf StrongNameSignatureVerification
Mit ProcessExplorer sehen wir den folgenden Stapel auf dem beschäftigten Thread. Wir können auch weitere 10 Threads mit nur 0,01% CPU sehen, auf denen clr.dll! StrongNameSignatureVerification läuft.
Der sich drehende Thread verhindert nicht, dass der Rest der Anwendung ausgeführt wird, verschwendet jedoch CPU-Zeit.
Der Stack-Trace des Besetzt Thread 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
Das einzige ähnliches Konto finde ich in der Lage bin in dieser Frage ist: clr.sll!StrongNameSignatureVerification CPU consumption obwohl der Faden kalt zu haben scheint verschwunden.
Wir signieren unsere Assemblys nicht und sind bereit, ihnen zu vertrauen. Gibt es eine Möglichkeit, die starke Namensverifizierung vollständig zu deaktivieren?
Haben Sie das gesehen? http://msdn.microsoft.com/en-us/library/cc713694.aspx –
@SimonMourier - ja, von meinem Verständnis dies deaktiviert die "Umgehung" damit alle Baugruppen zu starken Namens Unterschrift Verifikation unterliegen, Art der Gegenteil von dem, was ich will. – chillitom
Oh, Entschuldigung, du hast Recht. Was ist damit: http://www.ryangerard.net/post/8768827919/assembly-verification-skipping-on-win7-64-bit-and –