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, отличным от того, который вы пытались запустить.