2014-04-06 85 views
0

我的ASPX網站有鏈接爲ASHX文件的CSS文件和JS文件。所以例如我在我的標記中得到了<script type="application/javascript" src="/JavaScript.ashx"></script>。 當我在Chrome中調試網站(最新版本沒有加載項)時,它會再次調用整個生命週期。ASPX-Handler再次調用完整的網站生命週期

出於測試目的,我清理了我的處理程序的ProcessRequest方法,並直接訪問它。 (http://localhost:1234/JavaScript.aspx)。 當我的處理程序完成了ProcessRequest方法之後,它跳轉到Default.aspx的Default()構造函數(之後它顯然繼續貫穿整個生命週期)。我想在請求Chrome訪問後(http://localhost:1234/)出於不明原因的背景請求,並分別使用IsPostBack = falseIsCallback = false來調用我的Default.aspx的生命週期。

奇怪的是在Internet Explorer 11中我不會遇到這個問題。

這怎麼可能? 這是Chrome的問題嗎? 使用實時版本時它甚至會出現嗎? 有什麼解決辦法嗎?

+0

你是否檢查過每個請求的'HttpContext.Current.Request.RawUrl'?請注意,您的帖子中沒有任何信息可以提示可能發生的情況 - 沒有示例代碼顯示該問題,也沒有請求的網址...對於我們所知的所有我們知道的'ProcessRequest'中的代碼檢查Chrome用戶代理並確定302重定向到家。 –

+0

問題是我不能用一個新項目重現這個,所以它必須是我的代碼。 RawUrl是我的處理程序的'/ JavaScript.ashx'和調用我不想要的Default.aspx後的'/'。我的主頁面和內容頁面中有很多代碼,但我無法想象這與它有關,因爲我直接調用ASHX文件。所以我現在決定重新命名ASPX和MASTER文件,看看會發生什麼:什麼都沒有,它將繼續執行ProcessRequest並完成,不再有任何方法調用。也許這是一個配置問題。 – modiX

+0

好的,我發現問題,我只是想知道爲什麼鉻假設404 ... – modiX

回答

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響應,即使當我的處理程序返回內容時? 因爲這是它可以轉發「/」並重復我的生命週期的唯一原因。