The Will Will Web

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

如何利用 Web Platform Installer 安裝 PHP 與 MySQL 資料庫

利用 Web Platform Installer 安裝 PHP 與 MySQL 資料庫真的非常非常方便,除了全自動的安裝過程外,最近還推出了 PHP Manager for IIS 擴充套件,對 PHP on Windows 的新手來說簡直會感動到痛哭流涕,我特別將安裝的過程與 PHP Manager 使用方法大致錄製成影片,讓沒用過的人搶鮮預覽一下 GUI 介面的友善。

... 繼續閱讀 ...

ASP.NET 在 x64 系統執行含有 32 位元 COM 元件的注意事項

今天在處理一個很久沒經手的專案,結果在設立執行環境時 ( Win7 x64 + IIS7 ) 卻遇到了無法載入組件的錯誤訊息 ( Could not load file or assembly 'Interop.ActiveDs' or one of its dependencies. An attempt was made to load a program with an incorrect format. ) 其中文錯誤訊息為 "無法載入檔案或組件 ‘'Interop.ActiveDs' 或其相依性的其中之一。 系統找不到指定的檔案。" ,雖然這個問題之前遇到過,不過由於久沒處理過這個案子,忘記了這個案子有用到 32 位元的 COM 元件,因此必須要設定 IIS7 的應用程式集區才能讓網站正常載入 COM 組件並正常執行。

... 繼續閱讀 ...

如何讓在 Reverse Proxy 之後的網站正常運行 (URL Rewrite)

前幾天看到了這篇文章感覺非常實用,也因此讓我想起之前曾經遇過的另一個問題,由於我公司內部的測試環境經常需要對外提供服務給客戶測試,但是對外的固定 IP 只有一個,且公司內部的測試機又好幾台,如果不用 Reverse Proxy 機制就無法對外共用一個 80 Port ( HTTP ) 給客戶使用,也因此我們用這種方式運作很久了,不過這樣的部署架構有個小問題,也就是無法正確取得用戶端的來源 IP 位址。

... 繼續閱讀 ...

如何在 ASP.NET 取得正在執行的 IIS 版本資訊

由於每個 IIS 版本之間多少都會有功能上的增進與架構上的差異,像我們在寫 ASP.NET MVC 的時候有時後就需要依據 IIS 的版本來做出一些特別的判斷,所以必須透過程式來取得正在執行的 IIS 版本資訊,在 ASP.NET 裡取得正在執行的 IIS 版本資訊原本是一件容易的事,不過當遇到了跟我們一樣的特殊情況就沒那麼簡單了,有興趣的就繼續看下去。

... 繼續閱讀 ...

使用 MSDeploy 手動部署網站時如何避免 Web.config 被更新

使用 Web Deployment Tools 工具 ( 又稱 Web Deploy 或 MS Deploy ) 進行網站部署是在簡單不過的事,有興趣的人可以參考 介紹好用工具:Web Deployment Tool 1.0 ( 附心得筆記 ) 文章或 ASP.NET MVC 2 開發實戰 書籍【第11章 安裝部署】的說明,不過若更新網站時希望可以跳過更新一些重要檔案,例如 :Web.config 等,這時就必須加上特別的參數才行,這參數非常特別必須另做筆記才不會忘記。

... 繼續閱讀 ...

IIS7 如何關閉特定目錄的執行權限(與 IIS6 比較)

若網站中有那種需要讓使用者上傳檔案的目錄,都一律建議將這些目錄設定成完全沒有執行權限,在早期的 IIS6 要將特定目錄的執行權限設定為「」是非常直覺的(如下圖示),不過由於 IIS7 整個架構的改變反而讓許多人找不到設定「執行權限」的地方,以下就是一個小提醒,讓大家能夠設定出更安全的站台環境。

... 繼續閱讀 ...

檢查上傳檔案副檔名真的有效嗎?分析 IIS6 副檔名解析弱點!!

製作網站難免會做到關於檔案上傳的功能,如果為了安全考量可能會限制其特定副檔名才能上傳,以免使用者上傳了不該上傳的檔案類型(例如 *.exe 執行檔),不過光是檢查檔案結尾的副檔名真的就安全了嗎?那可不一定!如果你現在還在使用 IIS6 的話,那你可能要小心了,因為最近知名3C連鎖賣場燦坤傳出資料外洩的案件就是因為這個弱點所致。

... 繼續閱讀 ...

ASP.NET 4.0 安裝在 IIS6 最常遇到的四個問題

昨天同事將一個 ASP.NET 4.0 的網站安裝到客戶的 IIS6 主機上 (測試環境),結果過程非常不順利,他們曾經一度覺得客戶的主機不知道經過幾隻手蹂躪過了(因為有好多人在共用 Administrator 帳號)進而產生排斥安裝在客戶主機以及 “為什麼我們要用 ASP.NET 4” 的感覺,不過在一群人的努力之下最後還是克服了困難,我特別因此寫下筆記,相信這些問題有其他人也可能會遇到。

... 繼續閱讀 ...

精通 NLB:如何有效的執行「清空停止」動作 (含研究心得)

前陣子曾經有段時間無法理解網路負載平衡管理員中的「清空停止」功能到底是如何運作的,因為依照官方的說法原本應該非常簡單的:”當清空時,主機繼續處理已開啟的連線,並且在沒有其他使用中的連線時停止叢集操作”,依照這段描述來看,似乎是那麼的合情合理,而且非常適合在正式的環境使用,但我之前只要使用清空停止功能時卻沒有一次可以正常的「停止」,永遠都處理「正在清空」的階段。

... 繼續閱讀 ...

IIS7 靜態內容壓縮的運作過程詳解

前陣子有人問說 IIS7 靜態內容壓縮為何無法運作,當我抽空研究之後發現一些有趣的現象,在 IIS7 的靜態內容壓縮功能在第一次透過瀏覽器下載網頁時並不會進行壓縮,而是要有第二次 HTTP Request 時才會對該內容進行壓縮,而這個時候才會真的耗用 CPU 資源進行檔案壓縮,壓縮完之後才會將壓縮內容回應到用戶端。

... 繼續閱讀 ...

無法開始監視 'xx' 的變更,因為已經到達網路 BIOS 命令限制

在去年底的時候曾經在客戶的網站主機收到一個 載入組態檔時發生錯誤: 無法開始監視 '\\10.0.1.1\Shared\8666-f79049226252' 的變更,因為已經到達網路 BIOS 命令限制 的錯誤,當時並不知道是什麼問題,只知道重新啟動 IIS 或回收應用程式集區就會恢復正常,但最近已經瞭解了問題發生的主因。

... 繼續閱讀 ...