- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在限制用户可以从 Web.config 上传到站点的文件大小。正如解释的那样 here ,如果不接受大小,它应该抛出 ConfigurationErrorsException。我试图从上传请求的操作方法或 Controller 中捕获它,但没有成功。连接已重置,我无法让它显示错误页面。
我尝试在 BeginRequest 事件中捕获它,但无论我做什么,异常都未得到处理。这是代码:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
HttpContext context = ((HttpApplication)sender).Context;
try
{
if (context.Request.ContentLength > maxRequestLength)
{
IServiceProvider provider = (IServiceProvider)context;
HttpWorkerRequest workerRequest = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
// Check if body contains data
if (workerRequest.HasEntityBody())
{
// get the total body length
int requestLength = workerRequest.GetTotalEntityBodyLength();
// Get the initial bytes loaded
int initialBytes = 0;
if (workerRequest.GetPreloadedEntityBody() != null)
initialBytes = workerRequest.GetPreloadedEntityBody().Length;
if (!workerRequest.IsEntireEntityBodyIsPreloaded())
{
byte[] buffer = new byte[512];
// Set the received bytes to initial bytes before start reading
int receivedBytes = initialBytes;
while (requestLength - receivedBytes >= initialBytes)
{
// Read another set of bytes
initialBytes = workerRequest.ReadEntityBody(buffer, buffer.Length);
// Update the received bytes
receivedBytes += initialBytes;
}
initialBytes = workerRequest.ReadEntityBody(buffer, requestLength - receivedBytes);
}
}
}
}
catch(HttpException)
{
context.Response.Redirect(this.Request.Url.LocalPath + "?action=exception");
}
}
但我还是明白了:
Maximum request length exceeded.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: Maximum request length exceeded.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
更新:
到底是什么方法引发了异常?如果我阅读请求,它会引发异常如果我根本不阅读它,我会在浏览器中看到“101 连接重置”。这里可以做什么?
最佳答案
你不能在 action 方法中捕获错误,因为异常来得更早,但你可以在这里捕获它
protected void Application_Error() {
var lastError = Server.GetLastError();
if(lastError !=null && lastError is HttpException && lastError.Message.Contains("exceed")) {
Response.Redirect("~/errors/RequestLengthExceeded");
}
}
实际上当文件大小超过限制时会出现 HttpException 错误。
IIS 对内容也有限制——无法在应用程序中捕获。 IIS 7 抛出
HTTP Error 404.13 - Not Found The request filtering module is configured to deny a request that exceeds the request content length.
你可以google一下,关于这个iis错误的信息很多。
关于c# - 如何捕获违反 maxRequestLength 的 ConfigurationErrorsException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2756448/
我有一个在本地运行良好的应用程序,但是在部署时我看到了错误: Exception information: Exception type: ConfigurationErrorsExcepti
我正在为我的 MVC 应用程序使用 Stackexchange redis,并且我经常收到如下所示的 w3wp 异常。它不会在生产中发生,所以我想知道这是否与 Visual studio 有关? 使用
更新 - 现在不需要回答这个问题,我已经在下面解决了。 您好,我正在尝试在 .NET 中实现自定义跟踪监听器,但在通过配置文件添加跟踪监听器时遇到问题。 我在堆栈溢出上找到了类似的帖子,但它似乎没有帮
更新问题(正确指出问题) 我正在使用一个库,它实现了一个派生自 ApplicationSettingsBase 的类。 namespace MyLib { public sealed clas
我想添加一个行为扩展,以便我的服务类将使用 Ninject 实例化。我创建了一个继承自BehaviorExtensionElement 的类,并将其注册到我的App.config 中。我看不到任何明显
我正在创建一个类来从配置文件中读取/写入自定义配置。这里是配置文件
应用:工业 PC W7 旗舰版 64 位 问题:我们经常在断电(切断)时遇到问题,看起来像我们使用的这种中断损坏文件设置如下:Properties.Settings.Default. 当应用程序再次启
我正在限制用户可以从 Web.config 上传到站点的文件大小。正如解释的那样 here ,如果不接受大小,它应该抛出 ConfigurationErrorsException。我试图从上传请求的操
出于测试目的,我安装了一个干净的 XP 虚拟机,仅应用了 .NET 3.5 SP1 可再发行组件。 当我尝试启动我们的 WinForms 应用程序时,出现以下异常: System.Configurat
Unrecognized element 'setting'. (C:\Dev\DOT.NET\AutoPay\ibeam.config line 15) AppInfo.Sections.Get("
我有一个简单的控制台应用程序,旨在在我运行它时读取自定义配置异常(下面的代码) 我在调用 ConfigurationManager.GetSection 时收到带有消息“无效键值”的 Configur
我正在尝试测试网上商店的页面,我想使用 mollie 的 API 客户端。 https://github.com/foxip/mollie-api-csharp#how-to-use-the-api-
我有一个具有自定义配置部分的 Windows 服务。在 configSectionHandler 类中,我使用属性的属性来验证这样的设置: //ProcessingSleepTime Prop
嘿大家, 在“ return((string)(this [” TargetDir“])); ”上进行编译时,如何解决编译器错误: System.Configuration.Configurati
我正在尝试访问 Windows 服务应用程序中 app.config 的自定义部分。 我是这样定义的 ... 出现以下错误 An error occurred creating
我在App.Config中有以下configSection。
在 WCF 应用程序中,我有一些自定义配置类用于 app.config .但是,我从 WCF 服务主机获得以下堆栈跟踪(它尝试在 WCF 服务的构造函数中检索自定义配置): System.Reflec
一些背景:我有一个带有 5 个 Web 引用的 Windows 服务,在开发、测试、QC 的几个环境中一切都很好。开发和测试正在运行 windows 2003、QC 和 PROD windows 20
有谁知道这个特殊的异常意味着什么以及如何解决它? 请注意,我并不是在“异常”对话框中寻求有关抑制它的帮助。如果可能的话,我想了解它的根本原因以及如何解决原因本身。 谢谢。 附言 导致 FCE 的行是:
我正在尝试在 .net Core 2.2 应用程序中使用 ConfigurationErrorsException。我在这里查看了文档:https://learn.microsoft.com/en-u
我是一名优秀的程序员,十分优秀!