我们一直遇到间歇性问题,导致用户被强制退出应用程序。
我们的设置是 Windows Server 2003 Standard Edition 上的 ASP.Net/C# Web 应用程序,后端使用 SQL Server 2000。我们最近在客户的 VMWare 服务器上进行了一次重大的产品升级(我们有一个专用于我们的来宾实例),虽然我们在之前的版本中没有遇到这些问题,但新升级给产品带来的额外复杂性导致了很多问题。我们还在同一个机器上运行 SQL Server 2000(内部版本 8.00.2039,或 SP4)和 IIS/ASP.NET (.Net v2.0.50727) 应用程序,并通过 TCP/IP 连接相互连接。
首先,抛出的异常是:
System.IndexOutOfRangeException:找不到表 0。
System.ArgumentException:列“密码”不属于表 Table。
[这个异常出现在登录脚本中,虽然明明有密码栏可用]
System.InvalidOperationException:已经有一个打开的 DataReader 与此命令关联,必须先关闭。
[这个经常发生]
System.InvalidOperationException:此 SqlTransaction 已完成;它不再可用。
System.ApplicationException:ExecuteReader 需要一个打开且可用的连接。连接的当前状态是正在连接。
System.Data.SqlClient.SqlException:超时已过期。在操作完成之前超时时间已过或服务器没有响应。
就在今天,第一次:
System.Web.UI.ViewStateException:无效的视图状态。
我们已经使用与生产服务器相同数量的并发用户对应用程序进行了负载测试,并且无法重现这些错误。它们非常断断续续,即使只有 8/9/10 个用户连接也会发生。我的直觉告诉我它的 ASP.NET - SQL Server 2000 连接问题..
在这个阶段,我们几乎排除了代码级数据访问层错误(我们有一个由 15 名经验丰富的开发人员组成的开发团队致力于此),因此我们认为这是一个特定的生产服务器环境问题。