Rank: Advanced Member Groups: Member
Joined: 2/11/2015 Posts: 122
|
I'm investigating migrating away from Multiple Process Architecture to Multiple AppDomains to improve the performance of part of my application.
Currently I have a system setup where a Shell process can launch child processes which each contain a Browser Engine, which launches one or more WebViews.
I'm investigating migrating from child processes to creating AppDomains, and I want to know the impact that EO.WebBrowser has on the AppDomains when various failures occur as its my only Native dependency.
Right now if a child process crashes it has no impact on the shell process, so the user can restart the child application without issue. However with AppDomains, a native crash could bring down the whole system, which I would like to avoid.
With EO.WebBrowser, is there any actual native code referenced by the library? would a crash in any part of the EO.WebBrowser system potentially crash the entire process rather than just the AppDomain it lives in?
Any information you could provide me would be appreciated.
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,221
|
Hi,
EO.WebBrowser does not run the native browser engine code inside your .NET process. It instead creates its own child process and run the native browser engine inside the child process. So in theory there should be no concern there.
Having that said, due to EO.WebBrowser uses unmanaged IO/handle resources extensively (in order to communicate with the browser engine), it does perform better when using multi-process architecture instead of multiple AppDomain architecture because multi-process architecture can guarantee those unmanaged resources are always being released. Where as AppDomain unload has a time out value that can time out before those resources are completely released, which can potentially cause issues.
Thanks!
|