Table of Contents
- Getting Started
- Common Topics
- Reference EO.Total Dlls
- Adding EO controls to Visual Studio Toolbox
- Collecting Runtime Logs
- Collecting Crash Report
- Using DebugTools
- Using eowp.exe
- Troubleshooting Child Process Error
- Using with .NET Core (including .NET 5 and newer)
- Choosing between x86 build and x64 build
Both EO.Pdf and EO.WebBrowser dynamically create child processes and run browser engine inside the child process at runtime. By default, Windows system file rundll32.exe is used to create the child processes. Using this method has the following limitations:
- Third party AntiVirus/Security software can often raise false alarm for using rundll32.exe thus causes EO.Pdf/EO.WebBrowser to fail;
- The end user may need to grant Windows Firewall exception to rundll32.exe to allow the browser engine to gain network access. This may present a security risk as the exception rule can be exploited by malicious software;
You can avoid these limitations by following these steps:
- Distribute eowp.exe (found in the installation folder) along with your application. You should place this file in the same directory as EO.Base.dll, or
- Set EO.Base.Runtime.EnableEOWP to true when your application starts;
If you only use option 2, then eowp.exe will be automatically created in your temp folder and run from there.
This will create child processes using eowp.exe and reduce the chances it being incorrectly terminated by third party security software. It also allows you to create Windows Firewall exception rule for eowp.exe instead of rundll32.exe.
Alternatively, you can call EO.Base.Runtime.InitWorkerProcessExecutable to create eowp.exe dynamically. This method allows you to customize the name and the location of the executable, which can be helpful to reduce the potential confusion to the end user, or make it easier to set up whitelist for AntiVirus application.