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");
    

2013/01/21

[C#] Windows 目錄的長路徑與短路徑轉換

因為 Windows 的目錄/檔名允許空白字元, 所以造成寫命令列指令(ex: java)時往往要用雙引號(")包裝路徑, 以避免空白字元分隔了參數.
不過最近用了一個 SVG 轉圖的 Java 套件(SVG Rasterizer), 卻不接受雙引號框住的路徑. 反而要將路徑轉為無空白字元的短路徑才行.