【问题标题】:Postback in Website and webapplication网站和 Web 应用程序中的回发
【发布时间】:2015-02-23 16:34:49
【问题描述】:

我对回发在网站和 Web 应用程序中的工作方式感到困惑,因为,

我有一个按钮,我给了一个大约 30 秒的睡眠时间,并在同一时间在另一个页面中尝试执行任何活动,例如单击重定向等。

在 Web 应用程序中,上述场景可以正常工作。

在网站中,直到按钮事件出现,睡眠时间所有其他活动都将被挂断。

请解释一下。

提前致谢。

【问题讨论】:

  • 我猜只有一个线程维护网站。在 ASP.NET 中,如果启用了Session,请求(在会话内)将被一一处理,直到您在页面上指定特殊属性。
  • 在网站上是否有任何替代方案可以解决这个问题?
  • 检查WebApplication和WebSite是否默认使用Session状态
  • 我在 webconfig 中添加了会话状态。 mode="InProc" timeout="20"

标签: c# asp.net web-applications web


【解决方案1】:

如果启用Session 状态,会话内的请求将被一一处理。在您的情况下,直到按钮处理程序退出睡眠状态才完成请求。其他请求正在等待,直到第一个请求完成。

要启用并发请求,您必须在包含按钮的 ASPX 文件中指定 EnableSessionState="ReadOnly"。或者只是在 webconfig 中禁用 Session 状态。

<%@ Page EnableSessionState="ReadOnly" MasterPageFile="..." CodeBehind="xxx.cs" Inherits="xxx" %>

【讨论】:

  • 非常感谢您的回答。我已经在 webconfig 文件中进行了配置,并且工作正常。请问添加这个属性有没有其他影响?
  • 如果你在页面上设置EnableSessionState="ReadOnly"你必须明白Session字典可以从其他页面访问,你必须保持并发。
  • 如何保持并发?这是我用于测试的项目。喜欢里面只有 2 页,每页有 1 个按钮。当我在我们的主项目中添加它时,我无法登录到我的应用程序本身。登录成功后不会重定向到其他页面。如果我删除此属性,它就会起作用。
猜你喜欢
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2012-08-14
  • 2010-09-10
  • 2011-01-24
  • 2010-09-24
  • 2010-11-02
  • 1970-01-01
相关资源
最近更新 更多