wcfstorm

 

Reasons for using WcfStormHost

One of the benefits of using WCF is that you're not  required to host it in IIS.  Most people create console hosts during development and then just use windows service in production.  This is a quick and very easy way of hosting WCF services especially if you just have 2 or 3 services.  However, when the number of wcf services gets too high, controlling them using the mmc snap-in (services.msc) can get a bit tedious (maybe not if your powershell or WMI kung fu skills are quite good). 

However, if you're tired of writing these repetetive console/windows service hosts and is looking for another way of managing WCF services, then try out WcfStormHost.  It will let you dynamically host WCF Services without ever writing a single code.  Each WCF service is hosted in its own AppDomain so you wont have to worry about wcf services interfering with each other.

Here's a quick rundown of its features

  1. Auto-discover and host WCF services
    - WcfStormHost can read a folder containing assemblies (*.dll and *.exe) and *.config and automatically determine the service type to host.




     
  2. It monitors changes in the *.dll and *.config files.  If it detects changes, it automatically re-hosts the service!  You won't have to manually restart the service, unlike a windows service host. It doesnt lock the assembly file which means deployment is much simplified.  You just simple need to copy over the dll or config file.

    During development this is also very useful  because you can setup WcfStormHost to host a service located in your $Project/bin/Debug folder.  This means that everytime you make a code change and recompile, the service automatically gets re-hosted.
     
  3. It has a simple, intuitive UI for managing services.   WcfStormHost  (specifically the system tray host) can be started as an application that sits on your system stray (as in the screenshot above) which means it is easy to find.  If you need to do something on a wcf service, just click on the system tray icon and the main UI will popup over it.
     
  4. It can auto-load wcf services.  WcfStormHost has an optional config file called Host.config.  This file can be created by clicking the "Save" icon in the menu.  The host.config file can contain a list of WCF services which are automatically loaded at startup.  Shown below is a sample service configured to be auto-started.  The assembly files + the config file (<ConfigFile>WcfService.dll.config</ConfigFile>) are located in the value specified by the <Path> node.

     <WcfService id="MySvc" type="WcfService.MyTestSvc, WcfService">
            <Status>Start</Status>
            <BinFolder>
              <ConfigFile>WcfService.dll.config</ConfigFile>
              <Path>D:\Work\Source-Mine\WcfStormHost\WcfService\bin\Debug</Path>
            </BinFolder>
            <Activity>
              <ShutDownifIdle>false</ShutDownifIdle>
              <MaxIdleTime>10000</MaxIdleTime>
            </Activity>
     </WcfService>
  5. For quick debugging, it allows you to trace WCF messages being sent and received by the hosted wcf service.  Just select a service and then click on the "Trace" button on the right-hand side.  Shown below is the trace window.


     
  6. It creates log files for each of the hosted services.  The log files are created daily and can be configured not to exceed a certain size.  By default a log file can not exceed 0.5 MB.  Old log files and log files that exceed the size limit are moved into the "archive" folder.

      Try it out and see for yourself. Get Started

       Download WcfStormHost (blue download icon on the right hand-side)