相关疑难解决方法(0)

Response.End()vs HttpContext.Current.ApplicationInstance.CompleteRequest()

我们的应用程序的用户在白天至少两秒内下载一个附件.

以前的场景:

我们使用Response.End()在用户下载附件后中止与客户端的连接.由于我们遇到性能问题,我们开始记录异常,其中最重复的一个是线程中止异常.由于我们从Web服务获取附件,我们必须进行一些清理,并且我们在try-catch-finally块中进行了清理.经过一些研究,我已经理解,即使它在finally块中,也不会执行Response.End()之后的任何代码.是对的吗?

目前的情景:

我已经阅读了关于Response.End()的堆栈溢出中的线程是有害的,只有在真正需要它时才需要使用它,所以我决定使用HttpContext ....而不是CompleteRequest().使用此代码,可以完成所需的清理,但渲染的html将附加到下载的附件中.我尝试覆盖同一篇文章中提出的Render和RaisePostBackEvent,但问题仍然存在.有关如何解决此问题的任何想法都会有所帮助.

码:

HttpContext.Current.Response.Clear();

Response.ClearContent();

Response.ClearHeaders();

Response.AddHeader("Content-Disposition", "attachment; filename=" +   
filename);
Response.AddHeader("Content-Length", fileContent.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(fileContent);
Response.Flush();
Run Code Online (Sandbox Code Playgroud)

c#

6
推荐指数
1
解决办法
3万
查看次数

在Response.Redirect中使用endResponse

在ASP.NET页面中执行response.redirect时,我收到错误:
错误:无法获取
传入的两个变量的值(一个值从查询字符串检索,另一个从viewstate检索)

我从未见过之前的这个错误,所以我做了一些调查,发现建议使用"endResponse"的"False"值,

例如Response.Redirect("mypage.aspx",False)

这个有效.

我的问题是:在response.redirect中对"endResponse"值使用"False"有什么副作用?
即服务器的缓存有什么影响?页面是否在一段时间内保留在内存中?它会影响查看同一页面的不同用户吗?等等

谢谢!

asp.net

5
推荐指数
2
解决办法
9918
查看次数

重定向到endResponse为真的VS CompleteRequest和安全线程的页面

基于这些问题和那里的答案,我想问一下重定向的正确方法是什么.

使用Redirect(url,endResponse)的默认方式是抛出ThreadAbortException因为endResponse=true调用End()方法而调用,因此,如果在try/catch块中使用它,那么此异常显示在那里并且可以假定为错误,但实际上用户尝试通过停止页面处理的其余部分来重定向到页面.

其他可能的方法是Redirect(url, endResponse)使用endResponse=false以下方法调用with ,HttpContext.Current.ApplicationInstance.CompleteRequest();使用它不会出现任何异常.

所以问题是什么更好用,为什么.

asp.net security redirect

5
推荐指数
1
解决办法
1万
查看次数

如何从Web表单请求返回HTTP 400 - 错误请求错误?

这个主题几乎说明了一切.我有一个必须使用EstateId请求参数调用的EstateReport Web表单.我想返回一个合适的HTTP错误,这个参数我们不存在.如何返回HTTP错误400作为我的回复?

在切线上,如果不存在所需参数,我应该返回错误,我觉得更正确,还是重定向到报告的搜索页面,这更加用户友好?

asp.net webforms asp.net-4.0

2
推荐指数
2
解决办法
1万
查看次数

如何调用函数但不等待完成 - ASP.NET

我有一个页面,我做了一些文件操作,当文件完成后,我需要上传到亚马逊s3.有时文件可能很大,因此提交的用户需要等待太多.我怎么能做出类似的东西

  1. 文件操作
  2. 完成后,我将文件名参数发送到某个功能
  3. 我不需要等待该功能,我想在上传完成之前使用Response.Redirect.

c# asp.net cron amazon-s3

2
推荐指数
1
解决办法
2599
查看次数

如何让代码在Response.end之后执行

我的代码是这样的

HttpContext.Current.Response.Clear();
     HttpContext.Current.Response.ContentType = "application/pdf";
     HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=" + "name" + ".pdf");
     HttpContext.Current.Response.TransmitFile("~/media/pdf/name.pdf");
     HttpContext.Current.Response.End();
     if (FileExists("/media/pdf/name.pdf"))
     {
         System.IO.File.Delete("D:/Projects/09-05-2013/httpdocs/media/pdf/name.pdf");
     }
Run Code Online (Sandbox Code Playgroud)

这里我想在浏览器中下载name.pdf,下载后我想删除那个文件。但是代码执行在

HttpContext.Current.Response.End();
Run Code Online (Sandbox Code Playgroud)

执行该行之后没有代码。所以我的删除功能不起作用。这个问题有什么解决办法吗?

c# asp.net

2
推荐指数
1
解决办法
2万
查看次数

防止aspx页面呈现

我得到了一个"普通"的ascx-Page,其中包含HTML-Parts以及后面的代码.这些元素都应该在正常条件下显示(工作).

现在我希望能够设置一个request-parameter,这会导致页面zu以不同方式呈现.然后,它发送该页面上的信息,不是人类可读的,而是机器:

 string jsonProperty = Request["JSonProperty"];
                if (!string.IsNullOrEmpty(jsonProperty))
                {                    
                    Response.Clear();
                    Response.Write(RenderJSon());
                  //  Response.Close();
                    return;
Run Code Online (Sandbox Code Playgroud)

此代码位于Page_PreRender内.现在我的问题是:字符串被正确发送到浏览器,但之后仍然呈现"标准"html内容.

当我删除"Response.Close();" 评论我收到"ERR_INVALID_RESPONSE"

有什么线索如何在不创建额外页面的情况下解决这个问题?

asp.net httpresponse

0
推荐指数
1
解决办法
3387
查看次数

尝试捕捉不正常

我试图将一个新成员插入数据库,当有一个副本catch块时工作正常.但是当有一个新成员时try,catch块和块都会返回它们的消息.这是我的代码.

if (Request["cmd"] == "ins")
{
    try{
        mydb db = new mydb();
        member newm = new member()
        {
            Id = Request["uid"],
            Name = Request["uname"]
        };

        db.AddTomembers(newm);
        db.SaveChanges();
        Response.Write("ok");
        Response.End();
    }
    catch(Exception s) {
        Response.Write(s);
        Response.End();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# linq asp.net entity-framework try-catch

0
推荐指数
1
解决办法
238
查看次数