【问题标题】:Aspx gets redirected to itself (exactly the same url) - firstly status 302 then status 200Aspx 被重定向到自身(完全相同的 url) - 首先是状态 302,然后是状态 200
【发布时间】:2018-11-02 10:58:34
【问题描述】:

我正在处理 Web 项目(Web 表单),但遇到了奇怪的问题:当我刷新页面时,它的 Page_Load 事件被触发并返回状态 302。重定向到完全相同的 url,再次触发 Page_Load 并返回状态 200。

几个事实:

  • AutoEventWireup 属性设置为 false
  • 属性MasterPageFile已设置
  • 我在页面上没有找到任何<img src=""><img src="#">
  • 重定向并不总是发生(假设它发生在 80% 的相同 aspx 请求上)

如何防止这种行为以及如何实现每个请求仅加载一个页面?重定向到完全相同的 url 的目的是什么?

Tnx 提前!

编辑 2018-05-23 16:15: 我正在附加来自谷歌开发工具的打印屏幕: Google dev tools

编辑 2017-05-29 09:13: 好的,显然这是预期的行为。 This answer 指的是 curl,但我认为它也回答了我的问题。这些重定向是间歇性的,由 IIS 引起。我的下一个问题是:如何检测这种重定向并防止重复代码运行。在我的情况下,我正在做一些访问日志记录,如果重定向到特定页面的访问被记录两次......

【问题讨论】:

  • Page_Load 有什么特别之处吗?它是在刷新之后,而不是 Post/Redirect/Get 情况?
  • 没什么特别的 - 显示/隐藏控件,...通常的东西。你有什么特别的想法吗?问题是我在打开页面时做一些记录,因为重定向的东西被记录了两次。

标签: asp.net redirect iis webforms


【解决方案1】:

好的,我找到了解决方案。我应该提到该应用程序是“托管”在 SharePoint 上的。我认为问题在于 IIS 只提供服务,但对特定页面一无所知。每当缓存过期或发生回收时,IIS 都会向 SP 请求内容,当返回内容时,IIS 首先以状态“302 Found”响应,然后以状态“200”响应。

我的解决方案是检查响应状态并在响应状态等于状态“找到 302”(VB.NET 代码)时离开事件:

If Response.StatusCode = HttpStatusCode.Found Then Return

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-04
    • 2018-05-28
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    相关资源
    最近更新 更多