У нас есть приложение для сборки смешанного режима (MFC + WinForms), работающее на .Net 4, Windows 2008 R2, которое постоянно использует 100% -ный процессор в одном потоке.
Используя ProcessExplorer, мы видим следующий стек в занятом потоке. Мы также можем видеть еще 10 потоков, используя только 0,01% процессор, на котором выполняется clr.dll! StrongNameSignatureVerification.
Вращающаяся нить не препятствует запуску остальной части приложения, но тратит время процессора.
Трассировка стека занятого потока выглядит следующим образом:
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
Единственная подобная учетная запись, которую я смог найти, заключается в следующем вопросе: clr.sll! StrongNameSignatureVerification Потребление процессора, хотя поток, кажется, простудился.
Мы не подписываем наши сборки и не хотим доверять им, есть ли способ полностью отключить проверку сильного имени?