簡體   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