【发布时间】:2016-09-06 22:16:16
【问题描述】:
我的 ASPX 网站有 CSS 文件和 JS 文件链接为 ASHX 文件。例如,我在标记中得到了<script type="application/javascript" src="/JavaScript.ashx"></script>。
当我在 Chrome(没有附加组件的最新版本)中调试网站时,它会再次调用整个生命周期。
出于测试目的,我清除了处理程序的 ProcessRequest 方法并直接访问它。 (http://localhost:1234/JavaScript.aspx)。
在我的处理程序完成 ProcessRequest 方法后,它会跳转到 Default.aspx 的 Default() 构造函数(之后它显然会继续运行整个生命周期)。我认为在请求 Chrome 出于未知原因在后台访问 (http://localhost:1234/) 之后,并分别使用 IsPostBack = false 和 IsCallback = false 调用了我的 Default.aspx 的生命周期。
奇怪的是在 Internet Explorer 11 中我没有遇到这个问题。
这怎么可能? 这只是Chrome的问题吗? 它甚至会在使用实时版本时出现吗? 有什么解决办法吗?
【问题讨论】:
-
您是否检查过
HttpContext.Current.Request.RawUrl的每个请求?请注意,您的帖子没有任何信息可以表明可能发生的情况 - 没有显示问题的示例代码,没有请求的 url ... 据我们所知,ProcessRequest中的代码检查 Chrome 用户代理并 302 重定向到家。 -
问题是我不能用新项目重现这个,所以它必须与我的代码有关。 RawUrl 是
/JavaScript.ashx对于我的处理程序和/在它调用我不想要的 Default.aspx 之后。我的母版页和内容页中有很多代码,但我无法想象这与它有关,因为我直接调用了 ASHX 文件。所以我现在决定重命名 ASPX 和 MASTER 文件,看看会发生什么:什么都没有,它将继续处理 ProcessRequest 并完成,不再调用任何方法。可能是配置问题。 -
好的,我找到了问题,我只是想知道为什么 Chrome 会假设 404 ...
标签: c# asp.net google-chrome ashx page-lifecycle