IIS | The Will Will Web

The Will Will Web

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

ASP.NET 網站專案如何利用 MSDeploy 工具進行部署

我之前寫過一篇〔如何使用 Visual Studio 2010 的「單鍵發行」功能〕文章,當時簡直挖到寶一樣,可惜最近又開始維護幾個多年前用 ASP.NET 2.0 建置的網站,當時是以 網站專案 (WebSite Project) 的專案類型開發的,因此 Visual Studio 2010 的「單鍵發行」功能就變的英雄無用武之地,還好透過 Visual Studio 2010 Web Deployment Projects (WDP) 可以將網站專案封裝起來,但是上週遇到一個怎樣都無法發行成功的問題,查了兩個小時才找到這原來是一個 Visual Studio 2010 ( 含 SP1 ) 的 Bug,使用的人要特別注意這個小問題。

... 繼續閱讀 ...

使用 MSDeploy 部署網站時如何避免刪除遠端網站的檔案

這陣子都在玩跟網站部署有關的相關技術,其中有一段一定要透過 MSDeploy 手動部署網站上去,但問題是在透過 MSDeploy 批次檔進行手動部署網站時,由於 MSDeploy 會自動比對遠端與本地端的檔案差異執行「雙向同步」,這反而造成了當遠端伺服器裡有新增的檔案(例如在 App_Data 下有動態新增的檔案),每次透過 MSDeploy 部署後那些不存在本地端的檔案全部都會被刪除,這是個大問題,而我也研究了好些時間才找到方法解決這個問題。

... 繼續閱讀 ...

利用 WebMatrix 打造低成本高效益的完美網站 (簡報檔下載)

今天有堂打造低成本高效益的完美網站的演講,課堂中介紹了微軟的新一代安裝工具 Web Platform Installer 以及微軟的新一代架站工具 Microsoft WebMatrix 等,這次的演講內容中 WebMatrix 對我來說也是新的,但這次準備的還算充分,我覺得有把最核心、最重要的工具價值講到,會後還有學員跑來跟我說他看到我花兩分鐘安裝好 WordPress 感動到快哭了,呵呵!  ^__^

... 繼續閱讀 ...

如何利用 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:如何有效的執行「清空停止」動作 (含研究心得)

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

... 繼續閱讀 ...