我正在开发与PervasiveDB交互的ASP.NET MVC应用程序,它运行在单独的外部数据库服务器上。我使用Pervasive ADO.NET Data Provider和连接字符串,如:ServerDSN=dbname;UID=user;PWD=password;ServerName=87.xxx.xx.xxx;
在我的开发机器上,使用IIS Express进行调试时一切正常,但是当我在运行IIS 7.0的远程托管服务器上部署我的应用程序时,我在尝试连接数据库时遇到异常。
代码:
PsqlConnection conn = new PsqlConnection(ConnectionString);
conn.Open();
try
{
PsqlCommand cmd = new PsqlCommand(query);
cmd.Connection = conn;
PsqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
...
}
}
finally
{
conn.Close();
}
例外:
2013-01-28 15:40:21.2574|ERROR|App.WebApiApplication|Pervasive.Data.SqlClient.PsqlException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 87.xxx.xx.xxx:1583 at Pervasive.Data.SqlClient.PsqlConnection.Open()
at App.DBFacade.TestConnection()
at App.WebApiApplication.Application_Start()
从托管服务器ping到数据库服务器是可以的。
我没有意识到我的开发环境和生产环境之间有什么区别,我怎么能解决这个错误。
答案 0 :(得分:0)
此错误的原因是托管服务提供商在给定的IP和端口上阻止了连接。