2017-01-13

ASP.NET MVC 出現 HTTP Error 404.15 - Not Found

開發 ASP.NET MVC 網站,偶爾會遇到 HTTP Error 404.15 - Not Found 的錯誤,"印象中" 造成的原因有好幾個,每次都因為趕著要完成沒有刻意去紀錄,但沒搞清楚難免日後又遇到,就來釐清問題原因吧


錯誤訊息及畫面

  1. 英文

    • HTTP Error 404.15 - Not Found
    • The request filtering module is configured to deny a request where the query string is too long.
      Most likely causes:
      Request filtering is configured on the Web server to deny the request because the query string is too long.
      
      Things you can try:
      Verify the configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString setting in the applicationhost.config or web.config file.
      

      1error

  2. 中文

    • HTTP 錯誤 404.15 - Not Found -要求篩選模組設定為拒絕查詢過長的要求。
      最有可能的原因:
      因為查詢字串過長,網頁伺服器上的要求篩選已設定為拒絕要求。
      
      解決方法:
      確認 applicationhost.config 或 web.config file 檔案中的 configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString 設定.
      

      2errorzh

問題原因

驗證設定不正確造成頁面一直 redirect

可能的解決方式

  1. 檢查登入頁的驗證

    • 確認 Action 是允許匿名 [AllowAnonymous]

      3login

  2. 檢查是否允許匿名驗證

    • 開發環境
      1. 專案右鍵

        4rightclick

      2. Anonymous Authentication --> Enable

        5enableanonymous

    • IIS
      1. 網站 --> Authentication

        6iisauth

      2. Anonymous Authentication --> Enable

        7enabliisauth

  3. 停用 OWIN 啟始探索

    • 在 web.config 加上停用設定 <add key="owin:AutomaticAppStartup" value="false"/>

參考資料

  1. New Asp.Net MVC5 project produces an infinite loop to login page

沒有留言:

張貼留言