gpt4 book ai didi

asp.net - SQL 连接强行关闭

转载 作者:行者123 更新时间:2023-12-03 22:04:24 25 4
gpt4 key购买 nike

我在从 IIS7 对 Server 2008 进行 SQL 查询时遇到困难。我有一个运行更新语句的 VB.NET 类库。用于创建连接的底层代码没有改变,但突然间查询在我们的测试和开发环境中失败了。但是,它仍然可以在我们的生产环境中使用稍旧的代码对同一服务器/数据库工作。

我已经尝试在 web.config 中设置连接超时,但我无法解释原因。

查询的基本结构是:

Dim conn = New SqlConnection()
conn.ConnectionString = "Data Source=someserver\sqlexpress2008;Initial Catalog=DatabaseName;User ID=sa;Password=pass"
conn.Open()
Using cmd As SqlCommand = conn.CreateCommand()
cmd.CommandText = "UPDATE ..."
cmd.Parameters.AddWithValue("@UName", user.name)
cmd.ExecuteNonQuery() 'fails with error
End Using

错误是:

A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)

我已经尝试重新启动 IIS 和 SQL 服务器,但我完全没有想法。我只需要修复

最佳答案

您需要在调用 SqlCommand.ExecuteNonQuery() 之前打开连接。您可以通过调用 SqlConnection.Open() 来完成此操作。

Dim conn = New SqlConnection() 
conn.ConnectionString = "Data Source=someserver\sqlexpress2008;Initial Catalog=DatabaseName;User ID=sa;Password=pass"
Using cmd As SqlCommand = conn.CreateCommand()
cmd.CommandText = "UPDATE ..."
cmd.Parameters.AddWithValue("@UName", user.name)

conn.Open()
cmd.ExecuteNonQuery() 'fails with error
conn.Close()
End Using

此外,请确保您的数据库未处于单用户模式。

关于asp.net - SQL 连接强行关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9081132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com