Type Default Value Read Only Description

[Visual Basic]
Default No The module for obtaining URI/HTML data.




This property specifies the module to obtain URI/HTML data.

The TransferModuleType enumeration can take any of the following values:

  • Default — this is currently the same as RetryNetWebRequestOnEngineAccessDenied.
  • EngineTransfer — the engine (i.e. MSHTML/WinINet) obtains the page.
  • NetWebRequest — System.Net.WebRequest is used to obtain the page.
  • RetryNetWebRequestOnEngineAccessDenied — the engine obtains the page. If the engine is denied access to local storage, System.Net.WebRequest is used to obtain the page. (Possibly more than one request sent.)

RetryNetWebRequestOnEngineAccessDenied is useful in restricted environment. When MSHTML downloads web pages, it needs to access the following shell folders (specified in "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" in the registry):

  • History — the default value is %LOCALAPPDATA%\Microsoft\Windows\History
  • Cache — the default value is "%LOCALAPPDATA%\Microsoft\Windows\Temporary Internet Files"
  • Cookies — the default value is %APPDATA%\Microsoft\Windows\Cookies

If the folders are not accessible, the fallback folders History, "Temporary Internet Files", and Cookies in %TEMP% are used. (I.e. %TEMP%\History, "%TEMP%\Temporary Internet Files", and %TEMP%\Cookies.)

For example, your application uses the "ASP.NET v4.0" application pool and the identity is ApplicationPoolIdentity, you need to grant "IIS APPPOOL\ASP.NET v4.0" access to the folders with %LOCALAPPDATA% = %SystemRoot%\System32\config\systemprofile\AppData\Local and %APPDATA% = %SystemRoot%\System32\config\systemprofile\AppData\Roaming or to the fallback folders with %TEMP% = %SystemRoot%\Temp. (E.g., the user group for the DefaultAppPool application pool with identity ApplicationPoolIdentity is "IIS APPPOOL\DefaultAppPool".) The folders' default values thus expand to:

  • History — %SystemRoot%\System32\config\systemprofile\AppData\Local\Microsoft\Windows\History
  • Cache — "%SystemRoot%\System32\config\systemprofile\AppData\Local\Microsoft\Windows\Temporary Internet Files"
  • Cookies — %SystemRoot%\System32\config\systemprofile\AppData\Roaming\Microsoft\Windows\Cookies

If MSHTML cannot access those folders (including the fallback folders), for specifying EngineTransfer, you may receive an exception containing something like "Unable to access URL. COM error 800c0008 in FACILITY_INTERNET. Not enough storage is available to process this command." ABCpdf with RetryNetWebRequestOnEngineAccessDenied specified will then, instead, obtain the HTML page using System.Net.WebRequest. In such a case, more than one request may be sent. Typically, this would manifest as three requests by ABCpdf for the same page.