我最近为学校项目创建了一个.aspx网站,它在www.somee.com上免费托管。主机的免费软件包中还包含一个数据库(SQLServer)。 我家里没有SQLServer,但我需要使用数据库,所以我运行了一个查询来创建所需的所有表。到目前为止一切正常,数据库存在(我在somee.com的成员区看到这个),我的网站可以访问。
但是,我想从我的代码后面插入/更新/删除数据。我从我的主机获得了以下连接字符串:
workstation id=sskDatabase.mssql.somee.com;packet size=4096;user id=****;pwd=****;data source=sskDatabase.mssql.somee.com;persist security info=False;initial catalog=sskDatabase
不幸的是它没有用。
在我的web.config中:
我的代码背后:
connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
string commandString = String.Format("INSERT INTO Mitglied (Position_Id, Username, Passwort, EMail, Beitrittsdatum, aktiv) VALUES ({0},'{1}','{2}','{3}','{4}',{5})", 0, mitglied.Username, mitglied.Password, mitglied.EMail, DateTime.Now, 1);
SqlCommand sqlCommand = new SqlCommand();
sqlCommand.CommandType = System.Data.CommandType.Text;
sqlCommand.CommandText = commandString;
using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{
sqlCommand.Connection = sqlConnection;
sqlCommand.Connection.Open();
sqlCommand.ExecuteNonQuery();
sqlCommand.Connection.Close();
}
它在sqlCommand.Connection.Open();崩溃; ,并显示以下错误消息:
连接超时已过期。尝试使用登录前握手确认时超时时间已过。这可能是因为登录前握手失败或服务器无法及时响应。尝试连接到此服务器所花费的时间是 - [Pre-Login] initialization = 119;握手= 14883;
为什么我无法连接到我的数据库?
答案 0 :(得分:1)
联系他们的支持?通常你应该无法连接 - 数据库应该在防火墙后面雇用,可能他们至少更改了默认端口号。
您知道,这不是您主机支持的替代品。
答案 1 :(得分:1)
你是从学校实验室尝试的吗?我在同一主机上遇到了同样的问题。在我的项目中,学校 防火墙 阻止我连接到数据库。您可以尝试从自己的网络(在家中或通过将手机用作接入点)进行远程拍摄,并查看是否仍在进行。
答案 2 :(得分:0)
首先,您应该检查数据库服务器是否可用,您可以轻松地对您的ip服务器地址使用ping命令。
如果数据库服务器可用,您可以检查实例的端口是否可用,默认值为1433。 为此,您可以使用telnet命令,如下例所示:
telnet XXX.XX.XX.XX 1433
您必须知道的一件重要事情是SQL Server服务浏览器正在服务器端寻找客户端呼叫,这是接收呼叫并能够进行通信的服务。您必须确保此服务也正常运行。