【发布时间】:2011-01-17 14:49:42
【问题描述】:
在生产环境中部署了新版本的 ASP.NET 站点后,我每秒记录数十个数据错误,几乎总是出现“找不到表 0”错误。我们使用数据集并经常引用Table[0],虽然我了解在访问Table[0] 之前检查数据集以查找表的防御性编码实践,但在过去这从来都不是问题。某个页面将在一秒钟内正常加载,然后下一秒钟就会丢失其中一个数据驱动组件。只是看看这是否会为任何人敲响警钟。
更多细节:这次我使用了不同的构建服务器,虽然我认为两者的编译器设置相同,但我很难想到有一个开关可以使 50%我的数据库调用返回时没有表。我还将项目切换到 VS 2008,但当我切换回 VS 2005 时,我又恢复了所有这些更改。我注意到构建的程序集有一个新的 MyLibrary.XmlSerializers.dll,它不习惯的地方,但我也无法想象这是造成所有麻烦的原因。 (它也不会因调用 MyLibrary 而失败,或者至少不会超过任何其他时间。)
更新添加:我发现麻烦的构建是“发布”构建,工作构建被编译为“调试”。这可以解释吗?
在这些更改修复之前回滚到构建。 (重新启动 SQL Server,我们之前尝试过的步骤没有。)
问题似乎也是基于负载的 - 这在我们的集成和 QA 环境中运行没有问题,甚至我们的冒烟测试环境 - 指向生产数据的环境 - 在轻负载下也很好。
这是否具有您过去可能见过的任何东西的显着特征?
【问题讨论】:
-
看看我下面的答案...这是一个迟到的答案,所以你可能忽略了它,但我之前已经解决了这个错误消息,并以“硬杀”结束了我描述的情况。
标签: asp.net sql-server dataset