2012-09-05 59 views
0

我在我的web.config以下:asp.net存儲404請求的URL

<customErrors defaultRedirect="/error/1" mode="Off" redirectMode="ResponseRedirect"> 
    <error redirect="/404.aspx" statusCode="404" /> 
</customErrors> 

<httpErrors errorMode="Custom"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <error statusCode="404" prefixLanguageFilePath="" path="/404.aspx" responseMode="ExecuteURL" /> 
</httpErrors> 

404.aspx.vb

Partial Class _404 
Inherits System.Web.UI.Page 

Protected Overrides Sub Render(writer As HtmlTextWriter) 
    MyBase.Render(writer) 
    Response.StatusCode = 404 
End Sub 

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
    Dim lang As String = Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName 

    GlobalFunctions.ReportError("404 URL", Request.UrlReferrer.Host.ToString) 


End Sub 
End Class 

在我的404.aspx的代碼隱藏中,我想先存儲哪個URL被請求。我該怎麼做? 如果這是不可能在404.aspx.vb我想知道我可以如何將請求存儲在我的數據庫。

謝謝!

+0

使用請求對象的HTTPReffererproperty,或者從該請求相應的標頭值。 –

+0

謝謝。我可以建議下次你添加一個答案,而不是評論,這樣你也可以得到獎勵你的努力:) ps。它還沒有解決,我添加了一個新的評論,下面的答案,如果你可以看看那個? – Flo

+0

謝謝@Floran,但實際上我的評論是爲了引導你,所以你可以自己調查答案,如果我寫一些具體的東西來解決你的問題,我一定會把它作爲答案加入。 –

回答

0

Request.UrlReferrer獲取關於鏈接到當前URL的客戶端先前請求的URL的信息。

直接從msdn

+0

我在Request.UrlReferrer.AbsolutePath.ToString上得到「對象引用未設置爲對象的實例」錯誤。也爲.OriginalString和.Host?爲什麼?我更新了原始文章,其代碼爲404.aspx.vb – Flo

+1

'Request.UrlReferrer'屬性可能並不總是包含一個值(例如抓取程序/機器人),因此您在訪問它之前需要檢查null。 –

+0

當我自己在我的瀏覽器地址欄中填入不存在的頁面時,會發生錯誤。因此,不會出現漫遊器/抓取工具。 – Flo

相關問題