Search Wiki:
Hostable Web Core (known as HWC) is a new concept in IIS7 to host a website/webservice inside your own process. In short a smaller hosted version of IIS (an IIS7 express edition?).

This is accomplished by making a LoadLibrary call to load hwebcore.dll (%systemdrive%\Windows\System32\inetsrv\hwebcore.dll)

From IIS7 onwards you can administer IIS7 remotely using IIS Manager (through HTTPS). When you connect remotely you are actually connecting to a "Web Management Service" called WMSVC. This service uses HWC so that it's not dependent on IIS7 services directly.

Let's see limitations of HWC (Calling it limitation is wrong so let's say it's by design)
  • Only one application pool
  • Only one website/webservice
  • Separate configuration file
  • No monitoring like available for IIS7 application pools
  • Require IIS7 to be installed

PS: Project files are in VS2008 but the application doesn't have any dependency with newer versions.

Ingredients of my WebCoreService.
  • Good IIS7 configuration file (applicationHost.config) which contains all configuration required to run ASP/ASPX/ASMX... pages
  • Native Windows Service which host HWC which provides install/uninstall options.

How to RUN the service?

Extract the zip files with source and the binary files.
Follow these steps to setup the service (make sure you are doing this from an elevated command prompt)

  • Create a folder called "TestPath" inside your "C:\inetpub\" folder
  • Create 2 folder inside called "wwwroot" and "Logs"
    • Drop "time.asp" and "time.aspx" pages inside the "wwwroot" folder
  • Enable event logs notification from the service
    • Registry location HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\WebCoreService
    • Create a string key "EventMessageFile" and set value as full path to "sample.dll" under the bin folder
    • Create a DWORD key "TypesSupported" and give value of "00000007"
  • Goto the folder where the EXE file resides "WebCoreService.EXE"
  • Install the service using the following command
    • WebCoreService install
  • Start the service using the following command
    • net start WebCoreService
  • Browse to the page http://localhost:8080/time.asp

Bingo! Hostable webcore service is ready.


All the configuration mentioned above like folder path, port number etc can be modified inside the configuration file "WebCoreService.exe.config"

Last edited Feb 3 2008 at 1:51 PM  by Sukesh, version 6
Updating...
Page view tracker