title: Configuring and hosting WCF services in a Prism desktop application
body: <p>My application is currently made up of 2 different solutions.</p>
  
  <p>1) The Shell which contains all the WPF and front end logic
  2) The BackEnd which contains all the WCF service implementations and NHibernate related data access. At the moment, there are 6 different WCF service contracts defined.</p>
  
  <p>I currently have this working quite well in Visual Studio but need to consider the deployment options for when the application is installed on to a users PC. As far as I am aware there are numerous different ways of hosting WCF services -- in-process, as a Windows Service, in IIS. I am intrigued to know how people go about configuring this type of setup in a Prism application. </p>
  
  <p>The nearest info I have found so far is from <a href="http://wcfguidanceforwpf.codeplex.com/releases/view/27987" rel="nofollow">http://wcfguidanceforwpf.codeplex.com/releases/view/27987</a> but I don't think it is quite what I am looking for.</p>
  
  <p>I would like to know :-</p>
  
  <p><strong>a)</strong> How and if you can allow the users the choice of different hosting strategies for WCF services?<br>
  <strong>b)</strong> All the examples I have seen show the ServiceHost opening and starting one service. Is this the recommended practice and I would have to create 6 Service hosts or could I start six WCF services in one ServiceHost?<br>
  <strong>c)</strong> If the WCF services are run in process for testing locally for example - do you use the bootstrapper in the Shell and open all 6 WCF services or is there some other place that this happens?<br>
  <strong>d)</strong> What strategies you use for configuring the endpoints or is it simply a case of modifying the app.config files?<br>
  <strong>e)</strong> If there are any decent references online or book that I have not managed to find that cover Prism desktop / WCF configuration?<br></p>
  
  <p>Apologies for the amount of questions but usually I can piece together an idea of what I need to do from extensive Googling but on this occasion I cannot find anything other than the link above that seems to match what I need to know. </p>
  
  <p>Any help with this on any question would be most appreciated.</p>
  
  <p>Alex</p>