The Will Will Web

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

嘗試執行專案時發生錯誤: 無法在Web伺服器上啟動偵錯。

在 2011 年的今天,我們又再度接手了一個 ASP.NET 1.1 的網站維護,而在開發主機都正常運作了幾個月之後卻又再度遇到鬼打牆的問題,而且這個錯誤訊息真的會讓人丈二金剛摸不著頭緒【嘗試執行專案時發生錯誤: 無法在Web伺服器上啟動偵錯。無法啟動 ASP.NET 或 ATL Server 偵錯。 請確認該伺服器已正確安裝 ASP.NET 或 ATL Server。】,我跟他奮鬥了五個小時才弄清楚問題發生的主因。

... 繼續閱讀 ...

如何在 IIS7 / IIS7.5 安裝 SSL 憑證(含 IIS7 匯入憑證的 Bug)

先前我曾經寫過一篇【購買與安裝 SSL 憑證完全攻略 (以 IIS7 為例) 】文章,文章裡鉅細靡遺的解說如何從購買 SSL 憑證到安裝 SSL 憑證到 IIS 上的過程,而且都有詳細的圖文解說,不過我最近卻發現當透過 IIS7/IIS7.5 管理員匯入 SSL 憑證且將憑證設定為「不允許匯出此憑證」時,就會導致該憑證無法正確繫結到站台的狀況,所以特別撰文提醒各位如何才能夠安全的管理憑證使用,又能正常運作於 IIS7 之中。

... 繼續閱讀 ...

IIS6:HTTP 401.1 - 未經授權:因認證無效而存取遭到拒絕

我有個客戶的主機位於中國大陸,作業系統是簡體版的 Windows Server 2003,預設網站停用中,正式網站的站台可以正常運作,但我們做的新網站安裝完之後卻發現總是無法遠端瀏覽,只能在本機看到網頁與程式都正常執行,遠端看的時候主要錯誤訊息為「HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。」這台主機實在不知道被多少人荼毒過,怎麼設定就是無法讓網站成功安裝起來,即便連靜態檔案都無法存取,心裡雖然明白重灌就能解決問題,但一份不服輸的精神總想著要釐清問題才能終身解除夢魘,所幸皇天不負苦心人,問題終於找到了答案。

... 繼續閱讀 ...

ASP.NET 開發人員應使用 IIS Express 進行開發與測試

IIS 7.5 Express 是一套針對 ASP.NET 開發人員特別設計的 IIS 7.5 版本,我發現有許多人並不知道他的存在,甚至於不知道何時要使用他,就覺得這只是另一個提供 ASP.NET 執行環境的程式而已,在 Visual Studio 2010/2008/2005 內建的 ASP.NET 開發伺服器 (Cassini) 已經使用很久,用來作為開發測試之用也沒什麼問題,有必要將開發環境的伺服器修改成使用 IIS 7.5 Express 來執行嗎?今天我就提出幾個重要的觀點。

... 繼續閱讀 ...

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,使用的人要特別注意這個小問題。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

在類別庫裡如何判斷 .NET 程式執行在 Web 環境下

今天發現一段特別的程式碼,我們有個方案(Solution)裡有個共用的類別庫(Class Library)專案,此類別庫專案同時提供給多個 Windows 應用程式、Windows 服務以及 ASP.NET 應用程式來使用,但同事用了有點複雜的程式撰寫方法取得目前的 .NET 程式是否為 ASP.NET 執行環境,因此特別撰寫一篇短文來提醒較為簡單易懂的方式。

... 繼續閱讀 ...

如何讓在 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 整個架構的改變反而讓許多人找不到設定「執行權限」的地方,以下就是一個小提醒,讓大家能夠設定出更安全的站台環境。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...