2015-12-16 44 views
0

在試圖弄清Global.asax爲什麼不起作用時,我決定轉到自定義錯誤並開始在那裏遇到問題。我正在測試404(頁面未找到),它不斷給我標準的服務器錯誤頁面,而不是我自己的頁面。自定義錯誤頁面不起作用

我試着將它設置在IIS的一邊,並沒有工作。事實上,設置匹配似乎會引發更多錯誤。我已刪除該更改以將其返回到當前問題。我提供了我爲製作此錯誤頁面所做的更改。也許比我更明亮的人可以找出哪裏出了問題?

<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/Error.aspx" /> 

任何幫助廣泛讚賞!我沒有檢查,看看是否存在Error.aspx而且它讓我知道這是不是一個實際的404頁沒有發現問題

編輯:嘗試建議重複的答案並沒有奏效

編輯2:這是,屏幕上出現錯誤

HTTP錯誤404.0 - 找不到

您正在尋找已被刪除的資源,有其名稱更改,或者暫時不可用。

最可能的原因:

  • 中指定的Web服務器上不存在的目錄或文件。
  • URL包含印刷錯誤。
  • 自定義過濾器或模塊(如URLScan)限制對文件的訪問。

可嘗試:

  • 創建Web服務器上的內容。
  • 查看瀏覽器URL。
  • 檢查失敗的請求跟蹤日誌並查看哪個模塊正在調用SetStatus。欲瞭解更多信息,請點擊此處。

詳細錯誤信息:

模塊 IIS Web核心

通知 MapRequestHandler

處理程序 StaticFile

錯誤代碼 0x80070002

+0

我不太瞭解自定義錯誤的處理方式,所以如果您需要更多信息,請詢問! –

+1

當設置redirectMode =「ResponseRewrite」時,[CustomErrors不起作用](http://stackoverflow.com/questions/781861/customerrors-does-not-work-when-setting-redirectmode-responserewrite) –

+0

它也是您的Error.aspx頁面中可能存在實際的錯誤。在這種情況下,您應該看到類似於「另外,執行第一個異常的自定義錯誤頁面時發生另一個異常」的情況。您可以嘗試使用靜態html文件(例如〜/ Error.htm)來消除這種可能性。 – rciq

回答

-1

我建議你使用一個控制器來具體這一點,例如:

[AllowAnonymous] 
    public class ErroHttpController : Controller 
    { 
     [Route("RequestError")] 
     public ActionResult RequestError() 
     { 
      Response.StatusCode = 400; 
      return View(); 
     } 

     [Route("NotFound")] 
     public ActionResult NotFound() 
     { 
      Response.StatusCode = 404; 
      return View(); 
     } 

     [Route("InternalError")] 
     public ActionResult InternalError() 
     { 
      Response.StatusCode = 500; 
      return View(); 
     } 

     protected override void OnActionExecuting(ActionExecutingContext filterContext) 
     { 
      Response.TrySkipIisCustomErrors = true; 
      base.OnActionExecuting(filterContext); 
     } 
    } 
} 

並在您的網頁。配置你應該做的:

<customErrors mode="RemoteOnly"> 
     <error statusCode="400" redirect="/RequestError"/> 
     <error statusCode="404" redirect="/NotFound"/> 
     <error statusCode="500" redirect="/InternalError"/> 
</customErrors> 

您必須跳過IIS自定義錯誤,像上面的代碼,在OnActionExecuting方法。

+0

OP使用WebForms我想。 – Kamo

+0

它確實看起來像Webforms –

+0

不一定 –

相關問題