【问题标题】:ERROR Catching in Web APi “request length exceeded”Web APi 中的错误捕获“超出请求长度”
【发布时间】:2015-12-24 04:41:11
【问题描述】:
    public JsonResult gallaryAudioAdd(Gallery_tbl imageGalleryParam,ImageBal imageParam)
    {
        try
        {
            var Audio_folder_path = Server.MapPath("~/audioClip/");
            TimeZoneInfo INDIAN_ZONE = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
            DateTime indianTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, INDIAN_ZONE);

            var max_id = dc.Gallery_tbls.Count() == 0 ? 0 : dc.Gallery_tbls.Max(x => x.auto_id);



            Gallery_tbl imageGallery_list = new Gallery_tbl();

            imageGallery_list.name = imageGalleryParam.name;
            imageGallery_list.remark = imageGalleryParam.remark;
            imageGallery_list.upload_date = indianTime;
            imageGallery_list.auto_id = int.Parse(max_id.ToString()) + 
            if (imageGalleryParam.gallery_type == "audio")
            {
                string audioClip_name = byteArrayToImage(imageParam.imageData.Split(',')[1], Audio_folder_path, (int.Parse(max_id.ToString()) + 1).ToString() + ".mp3");
                imageGallery_list.gallery_url = "/audioClip/" + audioClip_name;
            }
            imageGallery_list.status = 1;
            imageGallery_list.description = imageGalleryParam.description;
            imageGallery_list.gallery_type = imageGalleryParam.gallery_type;

            dc.Gallery_tbls.InsertOnSubmit(imageGallery_list);
            dc.SubmitChanges();


            return Json(new
            {
                flag = true,
                message = "Insert Successfully",
                data = imageGallery_list
            });
        }
        catch (Exception ex)
        {
            return Json(new
            {
                flag = true,
                message = ex.Message.ToString()
            });
        }
    }


    public static string byteArrayToImage(string Content, string filePath, string filaName)
    {
        var bytes = Convert.FromBase64String(Content);
        using (var imageFile = new FileStream(filePath + filaName, FileMode.Create))
        {
            imageFile.Write(bytes, 0, bytes.Length);
            imageFile.Flush();
        }
        return filaName;
    }

捕获“超出最大请求长度”

问题是在上传按钮的点击事件之前抛出了异常,并且在我的代码运行之前发生了异常。那么如何捕获和处理异常呢?

【问题讨论】:

标签: c# angularjs asp.net-mvc


【解决方案1】:

您无法在应用程序代码中捕获该异常,因为您已经确定了自己。如果超过请求长度,则在运行任何应用程序代码之前,该请求已被 IIS 拒绝。

这是为了防止大请求引起的 DoS 攻击。您应该 set a reasonable upper limit (in KBs) 基于您期望的有效请求的最大大小:

<configuration>
  <system.web>
    <httpRuntime maxRequestLength="8192"/>
  </system.web>
</configuration>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 2017-03-04
    • 1970-01-01
    相关资源
    最近更新 更多