2013-11-14 42 views
0

這是我第一個使用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; 
    } 

我不知道這是真的,如果我的應用程序的錯誤或由於內存限制,這是服務器錯誤,因爲它不會在我的計算機中發生,而且有時只發生在服務器上。

回答

1

此問題與您的應用程序無關,基本上,如果您嘗試從服務器中的端口數超過5000的端口設置TCP連接,則會發生此問題。

您可以設置TCP端口,服務器可以允許下列步驟的最大數量:

1.Open Registry Editor - 轉到run - >regedit
2.Goto - >HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 3.Goto->Edit菜單上,單擊New,然後添加以下注冊表項:

Value Name: MaxUserPort 
Value Type: DWORD 
Value data: 65534 

立即重新啓動服務器,並嘗試運行應用程序。

查看此鏈接瞭解更多信息:An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full

相關問題