调用PageMethod块直到完成;阻止客户端或服务器端重定向

时间:2011-01-22 00:24:25

标签: asp.net asynchronous pagemethods

我通过javascript调用静态页面方法,需要5到10分钟。我想让我的用户选择继续等待请求是否完成,并使用window.setTimeout()每30秒检查一次。

我已尝试过location.href ='/ newpage.aspx'或触发按钮的点击处理程序(执行类似的重定向)以在完成页面方法之前重定向用户,但无济于事。我可以立即将用户发送到一个简单的html页面,但是重定向到涉及服务器端的任何aspx页面似乎都会被阻止。当页面方法最终完成时,重定向确实成功。

这是:

  • 浏览器问题?如果都是现代的 浏览器支持至少2个 每个域的并发请求,原因 这不行吗?
  • 一个框架 局限性?
  • 理想的设计 模式甚至可能吗?我有 检查,并重定向到 HTML页面,原始请求继续处理(db更新,没问题)。

从“并发HTTP请求”角度来看,Page方法调用是不是非同步?

非常感谢任何见解!

1 个答案:

答案 0 :(得分:0)

听起来你正在阻止InProc会话,它限于每个唯一会话一个并发请求。如果您不需要在页面方法中访问Session,则可以通过修改WebMethod属性来禁用它:

[System.Web.Services.WebMethod(EnableSession=false)]