 <p>It appears to work like this. I still haven't tried saving or retrieving data from the database, but it's error free initializing controllers etc. The rest of the code is like in the tutorial <a href="http://docs.castleproject.org/Windsor.Windsor-tutorial-part-one-getting-Windsor.ashx" rel="nofollow">http://docs.castleproject.org/Windsor.Windsor-tutorial-part-one-getting-Windsor.ashx</a>.</p> <p>NHibernate configuration is in the config file (web.config or nhibernate.cfg.xml).</p> <pre><code>&lt;hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"&gt; &lt;session-factory&gt; ... &lt;/session-factory&gt; &lt;/hibernate-configuration&gt; </code></pre> <p>Then the <code>PersistenceFacility</code> can simply be like this.</p> <pre><code>public class PersistenceFacility : AbstractFacility { protected override void Init() { // NHibernate configures from the &lt;hibernate-configuration&gt; section of a config file var config = new Configuration().Configure(); Kernel.Register( Castle.MicroKernel.Registration.Component.For&lt;ISessionFactory&gt;() .UsingFactoryMethod(_ =&gt; config.BuildSessionFactory()), Castle.MicroKernel.Registration.Component.For&lt;ISession&gt;() .UsingFactoryMethod(k =&gt; k.Resolve&lt;ISessionFactory&gt;().OpenSession()) .LifestylePerWebRequest() ); } } </code></pre> <p>The difference between the tutorial is there is no need for the Fluent configuration and instead using NHibernates <code>Configuration().Configure()</code> works.</p>