SQLServer 2005 选择语句有效,更新语句无效

SQLServer 2005 选择语句有效,更新语句无效

我很感激任何关于这方面的想法。这让我们很困惑。这个问题似乎是环境问题,所以我们将在其他地方托管这个进程,但我不知道为什么会出现问题,这让我很抓狂。关键的谜团是 Select 有效,但 Update 无效。

  • 私有网络内的 MS SQL Server 2005。
  • 2003 Server .Net 2.0 IIS 服务器位于 DMZ
  • 两者之间的端口 1433 是开放的。(打开所有端口的测试产生了相同的结果。)
  • 软件防火墙均已被禁用。
  • SQL 管理控制台在连接时显示相同的错误。
  • 来自专用网络内部和 DMZ 其他地方的连接可以正常工作。
  • 这个过程持续了数年,然后在 17 日停止了。唯一可见的区别是 IE8 KB 更新。

我们收到错误:

A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.) 

连接打开无错误。连接字符串正在为数据库传递服务器和实例。创建了新用户,结果相同。如果指定了错误的用户,则会返回无效的用户响应。

使用 System.Data.SqlClient.SqlConnection - 选择语句工作 - ExecuteScaler() 和 ExecuteReader() - 更新语句出现上述错误 - ExecuteNonQuery()

使用 ODBC 适用于选择和更新。

SQL 跟踪显示选择命令,但没有显示 SQLConnection 更新命令。

假设问题与 DNS 有关,我们还用 IP 地址替换了服务器名称。同样,命名连接和 IP 连接都允许选择但不允许更新。

当尝试从 IIS 计算机使用 SQL 管理控制台时,SQL 跟踪显示某个对话框启动,然后管理控制台给出相同的传输错误。因此,问题似乎不在于 IIS。

谢谢你,

乔什

答案1

尝试强制连接字符串使用 TCP/IP 和所需端口:

tcp:servernameorIP\instanceName,1433  

参考:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx

相关内容