NCache provides a Level-2 Distributed Cache for NHibernate that allows you to use NHibernate in .NET applications that run in a multi-server configuration.
Start using a distributed cache or an OutProc cache in your existing NHibernate applications without any code change. Just change your NHibernate configuration file to plug-in NCache as your cache provider.
NHibernate by default provides a simple stand-alone InProc Level-1 cache out of the box. However, your ASP.NET application worker process keeps recycling and each time it does that you lose all the in-memory cache and have to rebuild it. And, if you have multiple worker processes running on the same server then you have multiple copies of the cache that takes more memory and can also go out of sync with each other. What you really need is an OutProc cache to be used with NHibernate in these situations.
Additionally, if your ASP.NET application is running in a web farm, then you must have a distributed cache which NHibernate does not provide out of box. However, you can plug in NCache seemlessly and start using a distributed cache with NHibernate.
Whichever way you look at it, NCache gives you a much more feature-rich cache for NHibernate regardless of whether your application is running on a single server or a web farm.
Read more about NCache 3.1
Download NCache 3.1