Ошибка testhost.exe с исключением нарушения прав доступа
У меня есть необработанное исключение в моем коде, которое разрушает мой процесс testhost.exe и приводит к сбою моей сборки конвейера Azure (точно в рамках задачи VSTest).
Исключение: 0xC0000005: место чтения нарушения прав доступа 0xFFFFFFFFFFFFFFFF
Проанализировав файл дампа Crush, я обнаружил, что это исключение появляется, когда я пытаюсь сохранить свой PDF-документ в указанном потоке с помощью метода "save" класса "PdfManger", я использую библиотеку Select.Pdf.x64.
Для информации: я переношу свою сборку из сборок xaml в сборки конвейера azure с обновлением тестовой среды с MSTest до MSTestV2, я создаю свои проекты с помощью задачи MSBuild с конфигурацией "выпуск" и с "Любым процессором" в качестве платформа, для задачи "VSTest". Я использую "x64" в качестве платформы сборки, "выпуск" в качестве конфигурации, MSTest.TestAdapter.2.1.1 в качестве тестового адаптера, я использую VS 2019, и вот файл настроек запуска:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- Configurations that affect the Test Framework -->
<RunConfiguration>
<MaxCpuCount>0</MaxCpuCount>
<ResultsDirectory>.\TestResults</ResultsDirectory>
<TargetPlatform>x64</TargetPlatform>
<TargetFrameworkVersion>.NETFramework,Version=v4.7.2</TargetFrameworkVersion>
<DisableParallelization>false</DisableParallelization>
</RunConfiguration>
<MSTest>
<TestTimeout>360000</TestTimeout>
<Parallelize>
<Workers>10</Workers>
<Scope>MethodLevel</Scope>
</Parallelize>
</MSTest>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="blame" enabled="True">
<Configuration>
<ResultsDirectory>.\TestResults</ResultsDirectory>
<CollectDump />
<CollectDump />
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
<LoggerRunSettings>
<Loggers>
<Logger friendlyName="blame" enabled="True" />
</Loggers>
</LoggerRunSettings>
</RunSettings>
--------------------------------------------------------------------------------------------------
Я попытался перехватить исключение, декорировав метод, ответственный за исключение, с помощью декораторов "[HandleProcessCorruptedStateExceptions, SecurityCritical], но безуспешно:( .
У кого-нибудь есть решение?
3 ответа
При переходе на mstest v1 все работает нормально, похоже, это связано с процессом QTAgent, потому что только mstest v1 запускает процесс QTAgent через процесс testhost. Спасибо за помощь:)
Эта проблема в основном возникает, когда в синтаксисе используются неправильные классы объявлений или неправильный шаблон, что может привести к нарушению прав доступа.
Проблема:
testhost.exe
происходит сбой с нарушением прав доступа, а веб-драйвер/браузер не запускается.
решение:
проверьте свои классы и метод объявления вызова функции и проверьте, правильно ли он совместим / соответствует вашемуtexthost.exe
правила.