繁体   English   中英

ASP .NET应用中的sql命令“等待操作超时”

[英]“wait operation timed out” for sql command in ASP .NET app

我有一个旧的ASP .NET Web Forms应用程序。 代码隐藏VB .NET 它已经工作了10年。 一切都很好,并且工作非常快。

但是昨天我遇到了下一个问题:我对数据库的SQL查询开始花费更长的时间。

我在.aspx文件中有下一个代码:

<asp:SqlDataSource ID="SqlDataSource3" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand=" "SOME SELECT DB QUERY (hardcoded)" "> 
    <!-- I know, that it is bad way to configure select command. But I'm not an author -->
     <SelectParameters>
        <!-- Parameters -->
     </SelectParameters>
</asp:SqlDataSource>

使用MS SQL Management Studio中的服务器上的每个参数(经过测试)处理此SQL查询所花费的时间少于< 0.1秒。 没关系。

但是我的应用程序开始出现超时错误。 在SQL Server事件探查器中,此查询(硬编码)花费的时间超过30秒(超时)(带有某些参数,它的工作时间为14至20秒。但是,它的使用时间更长得多,例如2天之前)。

重要提示 :我已经解决了这个问题。 我已经使用此选择查询在MS SQL数据库中创建了存储过程。

并将.aspx代码更改为此:

<asp:SqlDataSource ID="SqlDataSource3" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand=" "PROCEDURENAME" " SelectCommandType="StoredProcedure">
    <SelectParameters>
        <!-- Parameters -->
    </SelectParameters>
</asp:SqlDataSource>

这就解决了我的问题。

问题是:为什么它解决了我的问题? 我真的不太明白。 这对我来说很有趣。

完整的错误代码

也许您的数据库连接查询可能需要花费更多的时间来执行,或者服务器要花费更多的时间来执行数据库查询,所以您可以检查托管数据库的服务器。 检查是否有太多正在运行的IIS应用程序池。

您还可以从配置文件中增加CommandTimeout来增加连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM