The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何利用 IIS7 的 ARR 模組實做 Reverse Proxy 機制

IIS7 的 ARR ( Application Request Routing ) 模組是個「非常強悍」的網站工具,今天抽空研究了一下,並成功設定 Reverse Proxy 機制,由於初學者要上手 ARR 真的有點困難,即便是對 Regular Expression 有經驗的 IT 人要成功設定都可能會遇到許多障礙,如果沒使用過 URL Rewrite 或不瞭解 Reverse Proxy 的人要上手那可是難上加難,所以今天我就分享一篇完整的安裝、設定過程。

... 繼續閱讀 ...

如何在 IIS 中將靜態檔案設定用戶端快取 (Client-side Cache)

當網站上線後,由於網站中許多靜態的網頁、圖檔、CSS、JavaScript 等資料都不會頻繁的變動,為了讓網頁的載入速度加快,我們通常都會將靜態檔案先設定 用戶端快取 (Client-side Cache),也就是所謂的 Expires Header 或稱 Cache Headers,這有別於我們在開發程式時所用的 伺服器端快取 (Server-side Cache)。

... 繼續閱讀 ...

在 Setup 專案中開發自訂動作(Custom Actions)應注意的事

我在 Setup 專案的自訂動作(Custom Actions)裡經常會寫許多判斷,用以檢查安裝過程中一些必要的條件是否成立,例如資料庫是否可正常連線、適當的安裝參數是否有正常傳入、…等等。但是在檢查的過程中若發現條件不足時,正確的回應方式應該要使用 InstallException 類別丟出例外狀況,讓安裝程式進行復原(Rollback)動作,但是這個 InstallException 例外狀況的「發生點」也是挺重要的。

... 繼續閱讀 ...

使用 ThreadPool 時應注意預設同時執行的 Thread 數量

之前我們有個專案需要透過 Console Application (指令列程式) 解析上萬個檔案,而且每解析一個檔案就必須要啟動這個程式一次,為了縮短程式執行的時間,我們當時就採用 ThreadPool 技術進行開發,結果最近客戶購買了新主機,安裝了我們的程式後卻發現經常還沒跑完就死了,研究了好一番功夫才發現問題出在 .NET 2.0 預設的 Thread 數量變了。

... 繼續閱讀 ...

啟動 Internet Explorer 的幾個好用的指令列參數 (IE7,IE8)

最近看黑大有分享幾個有趣的 IE8 啟動參數,個人覺得非常實用,也非常好奇,因為之前沒有注意過可以這樣用,而且 iexplore.exe 也沒辦法使用 iexplore.exe /? 查詢有哪些 switches 可用,所以就上網查了所有跟 IE 啟動有關的參數,分享於今天這篇文章。

... 繼續閱讀 ...

如何透過 C# 啟動、停止、重新啟動 Windows 服務

由於最近都在研究 Setup Project,所以在安裝解除安裝 Windows 服務程式時都會需要透過自訂動作操作 Windows 服務的啟動或停止,今天我就來分享幾個透過 C# 對 Windows 服務啟動、停止、重新啟動的方法。

... 繼續閱讀 ...

在 Firefox 中使用 影像地圖(Image map) 該注意的事

之前我介紹過一個 jQuery Cycle Plugin 套件,非常適合用來做跑馬燈或廣告輪播,但是今天我遇到一個跨瀏覽器的問題。我們有做一個網站用到了 jQueryjQuery Cycle Plugin,為了讓 jQuery Cycle 可以在當滑鼠移進廣告看板的範圍時可以先停止輪播,否則使用者可能才剛想要點選廣告時廣告卻換走了的窘境。

... 繼續閱讀 ...

如何將自訂參數傳入 Installer 類別的 Install 方法 ( Part 2 )

若希望可以在透過 msiexec 進行靜默安裝時能夠傳入自訂的屬性(PROPERTY)到自訂動作(Custom Action)中,然後再透過自訂動作的 CustomActionData 屬性傳入實做自訂動作的 Installer 類別中,之前試過一次但不成功,還以為是 Msi 格式的限制,直到最近我終於找出方法與真正的限制所在了。

... 繼續閱讀 ...

如何對 [Windows 服務] 與 [安裝專案的自訂動作] 進行除錯

雖然 MSDN 的 HOW TO:偵錯 Windows 服務應用程式 文件有教如何除錯,但是這樣的除錯有個大缺點,就是有時後程式碼是在 OnStart 事件一開始的時候就發生問題的,有時後就會因為來不及 附加 (Attach) 程序導致無法除錯。另外,對於「安裝專案」內的「自訂動作」由於是在專案的 Installer 類別中執行的,所以要對「安裝專案」進行除錯也不太容易。我今天就來分享幾個很簡單又有效的除錯密技。

... 繼續閱讀 ...