簡體   English   中英

Asp.net Web表單“等待操作超時”

[英]Asp.net web form “The wait operation timed out”

我有一個構建為從報表服務器檢索數據的Web表單。 我沒有權限在要在該服務器上查詢的表上創建索引,並且查詢在文本查找上非常非常慢。 我已經嘗試優化查詢中的功能,但這只會很慢。 因此,我需要找到一種避免網頁本身超時的方法。 我復習了幾個類似的問題,設置了瘋狂的高連接超時,但是單擊按鈕后仍然出現等待操作超時。 即使我設置了很高的連接超時,超時也會在30秒后發生。 我不知道這是否是Web配置,但是我沒有使用在我的Webconfig中定義的連接字符串,僅在后面的代碼中使用了此字符串。 僅當從Web表單訪問數據時,查詢才會在SSMS中超時(從技術上講,這是在連接字符串中使用我的登錄憑據,因此不存在任何權限問題,其他部分可以正常運行)。 我還需要增加頁面超時時間嗎?

連接字符串(出於私密性考慮,不輸入x或輸入x):

server=lxxxxxx.resources.xxx; Initial Catalog=pxxxxxxxx;User ID=mfeXXXXX;Password=XXXXXX;Trusted_Connection=False; Connection Timeout=10000"

查詢超時,如果有幫助:

 protected void btnSearchFeedback_Click(object sender, EventArgs e)
    {
        con.Open();
        SqlDataAdapter sdaFeedBack = new SqlDataAdapter("SELECT CTIR.portion_ID, IB.Item_ID as [Item ID], CTIR.Item_DBkey as [Item DB Key], CTIR.Feedback as [Feedback], CTA.date as [Date],CTA.Candidate_ID as [Candidate ID] FROM Canxxxxxxx CTIR WITH (NOLOCK) left join Ixxxxx IB WITH (NOLOCK) ON CTIR.xxxxx = IB.xxxxx left join Cxxxxxx CTA WITH (NOLOCK) ON CTxxxxxx = CTxxxxxxx where (ctir.portion_id in (" + portionIDTextBox.Text + ") ) AND (len(CTIR.Feedback) > 0) and CTA.Date  > '2015-02-01 00:00:00.000' order by [Date]", con);
        DataSet dtFeedBack = new DataSet();
        sdaFeedBack.Fill(dtFeedBack);
        ViewState["dtFeedback"] = dtFeedBack;
        rptFeedBack.DataSource = dtFeedBack;
        rptFeedBack.DataBind();
        con.Close();
    }

再次,為了安全起見,將表名刪除。 因此,我試圖查看是否還有其他位置需要將連接超時設置為更高的數字,以避免“ /應用程序中的服務器錯誤。等待操作超時”,或者這是需要處理的問題在服務器端?

這是確切的錯誤:

“ /”應用程序中的服務器錯誤。

等待操作超時說明:執行當前Web請求期間發生未處理的異常。 請查看堆棧跟蹤,以獲取有關錯誤及其在代碼中起源的更多信息。

異常詳細信息:System.ComponentModel.Win32Exception:等待操作超時

堆棧跟蹤:[Win32Exception(0x80004005):等待操作超時]

[SqlException(0x80131904):超時已過期。 操作完成之前超時的時間,或者服務器沒有響應。] System.Data.SqlClient.SqlConnection.OnError(SqlException異常,布爾型breakConnection,操作1 wrapCloseInAction) +2434922 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action 1 wrapCloseInAction)+5736592 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,布爾調用程序HasConnectionLock,布爾asyncClose)+285 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavier,Sql dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,布爾值和dataReady)+3731 System.Data.SqlClient.SqlDataReader.TrySetMetaData(_SqlMetaDataSet metaData,布爾moreInfo)+198 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavier,Sql Sql BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject st ateObj,布爾值和dataReady)+2852 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()+58 System.Data.SqlClient.SqlDataReader.get_MetaData()+89 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,RunBehavior runBehavior,字符串resetOptionsString)+379 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,布爾異步,Int32超時,任務和任務,布爾asyncWrite,SqlDataReader ds,布爾describeParameterEncryptionRequest)+2026系統數據。 .RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,布爾returnStream,String方法,TaskCompletionSource`1完成,Int32超時,任務和任務,布爾asyncWrite)+375 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior,RunBehavior runB字符串方法)+53 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior行為,字符串方法)+2 40 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior行為)+41 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior行為)+12 System.Data.Common.DbDataAdapter.FillInternal(DataSet數據集, DataTable []數據表,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand命令,CommandBehavior行為)+139 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet,Int32 startRecord,Int32 maxRecords,字符串srcTable,IDbCommand命令,CommandBehavior行為) +136 System.Data.Common.DbDataAdapter.Fill(數據集數據集)+88 FeedBackForm.btnSearchFeedback_Click(對象發送者,EventArgs e)在C:\\ Users \\ mfelchlin \\ Documents \\ Visual Studio 2015 \\ WebSites \\ devFormsSite \\ FeedBackForm.aspx.cs :27 System.Web.UI.WebControls.Button.OnClick(EventArgs e)+9696694 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)+204 System.Web.UI.WebControls.Button.System.Web。 UI.IPostBackEventHandler.RaisePostBackEvent(String eventArg ument)+12 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)+15 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)+35 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,布爾值includeStagesAfterAsyncPoint +1639

sdaFeedBack.SelectCommand.CommandTimeout=120; //or some other number of seconds.

在連接上設置超時將確定等待連接打開的時間,而不是命令執行的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM