2013/03/12

[ASP.Net] Chrome找不到favicon.ico時會產生新Session

先前認為 ASP.Net 網站加入 Global.asax 檔, 就可正確地建立 Session.
(參考: Session.IsNewSession 與 Session.SessionID)
不過沒想到 Chrome 瀏覽器很奇怪地會去存取網站的 /favicon.ico, 並在此 .ico 檔不存在時, 建立新的 Session, 導致 Session 的使用與預期不符.
還好解決方案還算簡單:

  1. 為網站加入 favicon.ico 檔, 以避免 Chrome 因為該檔案產生 404 Error 而造成 Session 的重新建立.
  2. 在 MVC 專案中, 可在 router中加入一項 favicon.ico 的過濾.
    routes.IgnoreRoute("favicon.ico");