У меня есть веб-проект и использовать NHibernate конфигурационный файл, как это:Nhibernate отображение файла конфигурации
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">Server=.\sqlexpress;Initial Catalog=afemanager;Integrated Security=no;User=sa;Password=password;</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
<property name="show_sql">true</property>
<mapping file="afe-serialization.hbm.xml"/>
<mapping file="afe-view.hbm.xml"/>
</session-factory>
Затем я прочитал конфиг так:
public static ISession GetSession()
{
NHibernate.Cfg.Configuration config = new NHibernate.Cfg.Configuration();
return config.Configure(Path.Combine(HttpContext.Current.Server.MapPath("/"), "App_Data", NHIBERNATE_CFG)).BuildSessionFactory().OpenSession();
}
Когда он работает, это исключение дисплей :
Ошибка сервера в приложении «/». Не удалось найти файл 'C: \ Program Files (x86) \ Common Files \ Microsoft Shared \ DevServer \ 11.0 \ afe-serialization.hbm.xml'.
Файл .hbm не расположен в этом каталоге. Мой вопрос в том, как установить файл сопоставления, чтобы получить файл .hbm из каталога App_Data.
Что-то вроде этого:
Path.Combine(HttpContext.Current.Server.MapPath("/"), "App_Data", "afe-serialization.hbm.xml")