这是我第一个使用NHibernate的项目,它在这里的所有开发人员的计算机上都能正常工作。但是,当我将应用程序上传到我的服务器(它是一个共享服务器)时,有时(并非总是)服务器正在初始化应用程序并初始化NHibernate时,出现以下错误:An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full
。 错误发生在这一行PessoaFisica user = InstitutoDaDorMVC.Helpers.LoginHelper.GetUsuarioLogado(User.Identity.Name);
,这是NHibernate在服务器中初始化的行。初始化NHibernate时服务器上的套接字错误
这是我如何配置NHibernate的:
cfg = new Configuration()
.SetProperty(NHibernate.Cfg.Environment.Dialect, "NHibernate.Dialect.MySQLDialect")
.SetProperty(NHibernate.Cfg.Environment.ConnectionDriver, "NHibernate.Driver.MySqlDataDriver")
.SetProperty(NHibernate.Cfg.Environment.ConnectionString, ConnString)
.SetProperty(NHibernate.Cfg.Environment.ConnectionProvider, "NHibernate.Connection.DriverConnectionProvider")
.AddAssembly("InstitutoDaDorMVC");
sessionFactory = cfg.BuildSessionFactory();
,然后我有一个方法获取会话:
public static ISession GetSession()
{
ISession currentSession = null;
currentSession = sessionFactory.OpenSession();
return currentSession;
}
我不知道这是真的,如果我的应用程序的错误或由于内存限制,这是服务器错误,因为它不会在我的计算机中发生,而且有时只发生在服务器上。