【发布时间】:2015-06-29 11:18:00
【问题描述】:
我们收到以下异常,它看起来像是源自Npgsql.dll。
我们在ASP.Net C# 托管在Ubuntu 14.04 服务器上的Apache mod_mono 下的应用程序中使用此DLL。 DLL 负责与Postgresql Server 交谈。我们在服务器上安装了最新版本的Postgresql。
此错误随机发生然后导致服务器崩溃。
System.Web.HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> Npgsql.NpgsqlException:
Failed to establish a connection to 'localhost'.
at Npgsql.NpgsqlClosedState.Open (Npgsql.NpgsqlConnector context, Int32 timeout) [0x00000] in <filename unknown>:0
at Npgsql.NpgsqlConnector.Open () [0x00000] in <filename unknown>:0
at Npgsql.NpgsqlConnectorPool.GetPooledConnector (Npgsql.NpgsqlConnection Connection) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at System.Web.UI.Page.ProcessException (System.Exception e) [0x00000] in <filename unknown>:0
at System.Web.UI.Page.ProcessRequest (System.Web.HttpContext context) [0x00000] in <filename unknown>:0
at ASP.default_aspx.ProcessRequest (System.Web.HttpContext context) [0x00000] in <filename unknown>:0
at System.Web.HttpApplication+<Pipeline>c__Iterator1.MoveNext () [0x00000] in <filename unknown>:0
at System.Web.HttpApplication.Tick () [0x00000] in <filename unknown>:0
System.TimeoutException: Dns hostname lookup timeout. Increase Timeout value in ConnectionString.
at Npgsql.NpgsqlClosedState.Open (Npgsql.NpgsqlConnector context, Int32 timeout) [0x00000] in <filename unknown>:0
任何有关找出导致此错误的原因的帮助将不胜感激。
【问题讨论】:
-
看起来“localhost”的 DNS 主机名查找超时。也许不是使用 DNS,而是在连接字符串中使用环回 IP 127.0.0.1。
-
Thanx @RonBeyer - 如果您将此作为答案发布,如果可行,我可以接受。
-
完成!让我们知道它是否成功。
-
@ShaneVanWyk 你找到解决方案了吗?
-
不,它自己修复了。 Npgsql 有时可能是不确定的。如果您使用的是单声道,请确保 mono.security 在您的 bin 中
标签: c# postgresql mono ubuntu-14.04 npgsql