ASP.NET | The Will Will Web

The Will Will Web

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

透過 logman 指令有效率的操作效能監視器

這個星期都忙碌於一個大型網站的效能調校,而效能調校首重數據分析,透過數據分析進一步瞭解應用程式所遇到的效能瓶頸,最常使用的工具不外乎就是 效能監視器 ( Performance Monitor ),但由於有多台主機,每壹台都要重新選取一次這些 效能計數器 (Performance Counter) 實在很麻煩,所以若能透過指令列工具建立效能監視集合就會十分方便。

... 繼續閱讀 ...

將 ASP.NET 網站部署在 UNC 路徑上最重要的步驟

如果要將 ASP.NET 網站安裝在遠端的 UNC 路徑上,在設定 IIS 時除了一般檔案的存取權限外,最重要的就是 ASP.NET 的執行權限是否有正確設定,由於所有置於 UNC 路徑上的 .NET 應用程式都會預設套用 LocalIntranet 群組,所以你無法將 ASP.NET 佈署在 UNC 路徑上,除非自行新增 .NET 安全性原則。

... 繼續閱讀 ...

解決在 Visual Studio 中因為權限不足而無法建置網站的問題

前陣子遇到一個很怪的問題,在正常的安裝下竟然有個專案從 SVN 版本庫簽出後無法正確安裝至我本機的 IIS7 中執行,甚至於無法在 Visual Studio 執行建置(Build),而且錯誤的狀況都是跟權限有關,但我花了好一段時間才將這個問題解決,原來就是卡在一個很小的地方沒注意到。

... 繼續閱讀 ...

如何讓 IIS6 / IIS7 中同站台不同應用程式間共用 Session 資料

在 Web Farm 環境下部署網站需要關注的細節可不少,在部署大型網站的時候 IIS 這部分到底要算 IT 的領域還是開發人員(Developer)的領域其實分不太清楚,像要在「同一個站台」區分「不同應用程式」且還要能讓 Session 彼此互通,這到底應該歸誰管呢?這可不是用「ASP.NET 開發伺服器」可以模擬出來的,而 IT 人員如果不會寫程式應該也不知該如何是好,這也是我認為 ASP.NET 開發人員應該多熟悉 IIS 的原因。

... 繼續閱讀 ...

利用 WebClient 類別模擬 HTTP POST 表單送出的注意事項

我們都知道 WebClient 類別是個簡單易用的東西,不只可以用作 HTTP 用途,連 FTP 都能用,想偷懶時很快就能寫出一些網路資料上傳、下載的程式,像我在寫一些測試程式時經常會使用 WebClient 類別,但大多情況都用來「下載網頁」居多,少有模擬表單上傳資料的情況,但利用 WebClient 類別在「傳送表單資料」時要小心使用,否則遠端接不到資料又很難除錯時哪就麻煩了。

... 繼續閱讀 ...

如何辨識使用者從瀏覽器按下 F5 或 Ctrl + R 重新整理頁面

有時候有些頁面有計數器或者有些程式碼只需要讓使用者執行一遍而已,我們會不希望使用者拼命用 F5 或 Ctrl + R 重新整理頁面時擾亂程式的運作,要達成這個需求其實有很多作法,例如透過一個 Cookie、一個 Session 來做判斷,但今天我要分享一個暗黑密記,教你如何從 HTTP Request Header 就可以判斷出使用者正在執行該頁面的重新整理。

... 繼續閱讀 ...

善用 Response.IsClientConnected 避免不必要的資源浪費

你在使用網站時不知道有沒有一種經驗是當你按下某一個連結或一個表單按鈕時,突然發現你按錯了,然後你會立即按下 ESC 鍵或按下瀏覽器的停止按鈕中斷網頁執行?我以前就曾經遇到過好幾次這種狀況,而且有些網頁程式執行時間非常長且非常消耗系統資源,例如:匯出幾十萬筆資料、對大量資料進行彙總運算、從伺服器端執行一個長時間的 Web Service 查詢、…等等,雖然使用者很「直覺」的中斷執行,但是伺服器端的程式卻還是會在背景乖乖的把所有的工作做完才會罷手。

... 繼續閱讀 ...

設定 Cookie 時可善用 HttpOnly 特性減低網站安全風險(XSS)

Cookie hijacking 是個很常見的 XSS 攻擊手法,大多是利用網站既有的 XSS 漏洞並透過 JavaScript 取得 documnet.cookie 資料,而 documnet.cookie 就包含所有你在該網頁所有可用的 Cookie 資料,但若你的網站程式在設定 Cookie 的時候有特別加上 HttpOnly 屬性,就可以進一步避免該頁的 Cookie 被 JavaScript 存取,也可保護使用者的 Cookie 不會偷走。

... 繼續閱讀 ...

利用健康監視(healthMonitoring)監控你的 ASP.NET 網站狀況

ASP.NET 2.0 有個 健康監視(healthMonitoring) 功能,可用來追蹤所有 Web 應用程式執行時期所發生的各種事件,例如:應用程式啟動(Application_Start)、應用程式結束(Application_End)、不安全的存取、發生例外狀況、…等等。可監視的範圍不限於「發生錯誤」而已,包括整個 Web 應用程式的生命週期都可完整紀錄下來,以便日後分析 Web 應用程式的健康狀況。

... 繼續閱讀 ...

怪問題:當該檔案已經存在時,無法建立或陰影複製

我們有個網站專案,上週在客戶端開發程式時,由於不斷在更新程式,網頁上會不定時出現「當該檔案已經存在時,無法建立或陰影複製」的錯誤訊息,當下看到這個錯誤訊息感覺非常的陌生,我更新網頁程式跟「陰影複製」有何關係?由於該錯誤只要將 IIS 重啟或將應用程式集區回收即可解決,因此沒多留意,也沒將畫面複製下來,但我有用這個技巧將錯誤訊息轉換成英文,好讓下次出現時可進一步分析發生原因。

... 繼續閱讀 ...

解決 BlogEngine.NET 1.5.0 在安裝後出現中文亂碼的問題

這個週末透過 Web Platform Installer 2.0 安裝了 BlogEngine.NET 1.5.0 來用,安裝是非常容易,但安裝後首次開啟網頁卻發現一大堆中文亂碼 (如下圖示),下載原始碼研究之後隨即找到發生問題的主因,我發現在專案網站雖有人發問提到這個問題,但似乎幾個月下來尚未修復,如果有需要的人可以參考此文。

... 繼續閱讀 ...