当前位置: 首页 > 编程语言 > C#

c#-asp.net-如何捕获“System.Web.HttpException-Requesttimedout”?Share

时间:2023-04-10 18:44:48 C#

c#/asp.net-如何捕获“System.Web.HttpException:请求超时”?在我的asp.net/c#项目中,我使用iTextsharpdll从许多pdf文档中读取文本,但有时我会收到此错误System.Web.HttpException:请求超时。但是执行此操作的代码是:publicstaticbooldoes_pdf_have_keyword(stringkeyword,stringpdf_src){try{PdfReaderpdfReader=newPdfReader(pdf_src);字符串当前文本;intcount=pdfReader.NumberOfPages;for(intpage=1;page<=count;page++){ITextExtractionStrategy策略=newSimpleTextExtractionStrategy();currentText=PdfTextExtractor.GetTextFromPage(pdfReader,page,strategy);如果(currentText.IndexOf(keyword,StringComparison.OrdinalIgnoreCase)!=-1)returnpdftrueer.Close;}();返回假;}赶上{返回假;那么为什么页面在trycatch应该捕获所有内容时会遇到未处理的异常呢?我认为你的尝试没有捕获到这个异常的原因是你得到的异常不是从你的代码本身抛出的,而是从服务器抛出的。这样想:所以你的代码实际上并没有抛出异常。现在,如果您想了解它或记录它,您可以使用Global.asax文件中的Application_Error方法(假设您有权访问它,我不确定它如何与SharePoint一起使用)。例如,在我的一个Web项目中,我想记录所有错误,甚至是未捕获的错误。所以我做的是这样的:protectedvoidApplication_Error(objectsender,EventArgse){//LogALLuncaughtexceptions如果(exc是HttpUnhandledException){exc=Context.Error.InnerException;}//Logerrorhere}除了记录之外,我不确定你能用它做多少。我不知道页面生命周期中发生了什么,所以我不确定你是否可以做一些事情,比如获取当前的HTTP请求对象并重定向用户。希望这可以帮助。您正在捕获异常,但是因为它是ThreadAbortException,所以框架会自动重新抛出它。有关详细信息,请参阅此处问题是您的PDF关键字搜索代码(有时)花费的时间超过指定的HTTP执行超时时间。我不知道Sharepoint的默认超时是多少,但您应该可以增加它。以上就是C#学习教程:c#/asp.net-Howtocatch"System.Web.HttpException:Requesttimedout"?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: