ASPX-Handler再次调用完整的网站生命周期

时间:2014-04-06 18:30:44

标签: c# asp.net google-chrome ashx page-lifecycle

我的ASPX网站有CSS文件和链接为ASHX文件的JS文件。例如,我的标记中有<script type="application/javascript" src="/JavaScript.ashx"></script>。 当我在Chrome中调试网站(没有附加组件的最新版本)时,它会再次调用整个生命周期。

出于测试目的,我清除了处理程序的ProcessRequest方法,并直接访问它。 (http://localhost:1234/JavaScript.aspx)。 在我的处理程序完成ProcessRequest方法之后,它跳转到Default.aspx的Default()构造函数(之后它显然继续贯穿整个生命周期)。我认为Chrome请求在后台出于未知原因访问了http://localhost:1234/),并使用IsPostBack = falseIsCallback = false单独调用了Default.aspx的生命周期。

奇怪的是在Internet Explorer 11中我没有遇到这个问题。

这怎么可能? 这只是Chrome的问题吗? 它会在使用实时版本时出现吗? 有什么工作吗?

1 个答案:

答案 0 :(得分:0)

好的我发现了它的原因:我的web.config包含

    <customErrors mode="On" redirectMode="ResponseRedirect">
        <error statusCode="404" redirect="/" />
    </customErrors>

<system.webServer>
    <httpErrors errorMode="Custom">
        <remove statusCode="404" />
        <error statusCode="404" path="/" responseMode="Redirect" />
    </httpErrors>
</system.webServer>

我知道这是处理404响应的错误方法,但我还没有离开它。我只是想知道为什么Chrome会得到404响应,即使我的处理程序返回内容? 因为这是它可以转发到“/”并重复我的生命周期的唯一原因。