Есть ли способ изящно восстановиться в приложении ASP.NET MVC, если база данных по какой-то причине не найдена, когда я пытаюсь получить экземпляр сеанса NHibernate из Structuremap?
public static class StructureMap
{
private static Configuration Cfg
{
get
{
var configuration = new Configuration().Configure(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "nhibernate.config"));
configuration.SetProperty(NHibernate.Cfg.Environment.ConnectionStringName, "MyConnectionString");
return configuration;
}
}
public static void ConfigureStuctureMap()
{
ObjectFactory.Initialize(x =>
{
x.ForRequestedType<ISessionFactory>()
.CacheBy(InstanceScope.Singleton)
.TheDefault.Is.ConstructedBy(Cfg.BuildSessionFactory);
x.ForRequestedType<ISession>()
.CacheBy(InstanceScope.HttpContext)
.TheDefault.Is.ConstructedBy(c => c.GetInstance<NHibernateSessionFactory>().GetCurrentSession());
});
}
}
Прямо сейчас приложение отобразит ошибку времени выполнения YSOD. У меня есть настраиваемая статическая страница ошибки html в веб-конфигурации, но она не отображается, даже если для режима настраиваемых ошибок установлено значение «Вкл.»