繁体   English   中英

无法连接到数据库(免费主机somee.com)

[英]Cannot connect to database (free host somee.com)

我最近为学校项目创建了一个.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()时崩溃; 并显示以下错误消息:

连接超时已过期。 尝试使用登录前握手确认时,超时时间已过。 这可能是因为登录前握手失败或服务器无法及时回复。 尝试连接到该服务器所花费的时间为-[登录前]初始化= 119; 握手= 14883;

有什么想法为什么我无法连接到数据库?

联系他们的支持? 通常,您不应该能够连接-数据库应该在防火墙之后使用,可能它们至少更改了默认端口号。

您知道,这里并不能代替您的主机支持。

您在学校实验室尝试吗? 我在同一台主机上遇到了同样的问题。 在我的项目中,正是学校防火墙阻止了我连接到数据库。 您可以尝试从自己的网络 (在家中或通过使用手机作为接入点)进行连接,以查看是否仍在进行中。

首先,您应该检查数据库服务器是否可用,您可以轻松地对IP服务器地址使用ping命令。

如果数据库服务器可用,则可以检查实例的端口是否可用,默认值为1433。为此,可以使用telnet命令,如以下示例所示:

telnet XXX.XX.XX.XX 1433 

您必须知道的重要一点是,SQL Server服务浏览器正在服务器端寻找客户端呼叫,正是该服务接收了呼叫并能够进行通信。 您必须确保该服务也能正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM