Fiddlercore: Session.LocalProcessID не соответствует System.Diagnostics.Process.Id

Я пытаюсь сделать инструмент веб-трафика с использованием DLL FiddlerCore. Я хочу отфильтровать результаты по ProcessID, чтобы записывался только трафик с нужного экземпляра браузера.

Я использую System.Diagnostics.Process для запуска указанной пользователем веб-страницы в IE.

Process IEProc = Process.Start("IExplore.exe", DesiredWebpage);
IEProcID = IEProc.Id;

Когда сеанс скрипача был завершен, я проверяю, соответствует ли сессия скрипача Session.LocalProcessID идентификатору процесса

private void FiddlerCapture_AfterSessionComplete(Session sess)
{
    if(sess.LocalProcessID == IEProcID)
    {
        //Add results to logfile
    }
}

Однако идентификатор процесса никогда не совпадает, и весь трафик Fiddler игнорируется.

Почему идентификатор, предоставленный Process.Start, не совпадает с идентификатором, предоставленным Session.LocalProcessID? Как я могу получить правильный идентификатор из каждого источника?

1 ответ

Process.Start возвращает идентификатор процесса для кадра / менеджера Internet Explorer. Трафик с вкладок поступает от дочернего процесса рендеринга.

К сожалению, нет отличного способа достичь того, что вы пытаетесь сделать, потому что процесс рендеринга может быть даже связан с процессом Frame, отличным от того, который вы пытались запустить.

Другие вопросы по тегам