SQL服务器卡住了

问题描述 投票:-1回答:1

我遇到了问题,我不知道发生了什么。我正在使用移动设备将数据存储到本地客户的PC(SQL服务器)。通信方法是通过Wi-Fi。问题是如果由于某种原因我将关闭网络适配器并重新打开它。 SQL服务器它完全卡住了。我再也无法与手机通信,直到我重置SQL服务或者我将关闭并从我的手机重新打开wifi。为什么会这样?我该如何解决这个问题?这是我的连接字符串

 string connectionString=" Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword";

 using(SqlConnection connection=new SqlConnection(connectionString))
 using(SqlCommand cmd = new SqlCommand("Insert into customers (name) values '"+Text1.Text+"'",connection))
  {
      connection.Open();
      cmd.ExecuteNonQuery();
   }

有时我得到的错误索引在绑定数组之外,但是我得到连接超时的时间最多

c# sql-server xamarin sql-server-2008-r2
1个回答
1
投票

这是因为SQL Server的底层套接字通信无法修复它。正如@ ta.speot.is所说,你的设计绝对不好。您可以增加与SQL Server的连接超时,但它不是糟糕设计的好解决方案。套接字通信是活的。这就像你从服务器上拔下网络插座并再次连接后,期望所有的操作恢复没有任何问题!套接字是打开的,根据底层SQL Server的体系结构,它需要一些时间来关闭套接字,超时等。

最好的解决方案是实现与数据库通信的服务,通过这种方式,当WIFI连接丢失或类似的情况发生时,与数据库的基础连接仍然存活并由Web服务成功处理。您的移动应用程序只是获取并将请求发布到Web服务,而不关心服务如何处理数据库操作。

© www.soinside.com 2019 - 2024. All rights reserved.