The Will Will Web

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

如何在執行 Web 單鍵發行時,一併輸出完整的 pdb 偵錯符號檔

我在前些陣子開了好幾個梯次的 Visual Studio 2015 開發與偵錯技巧 課程,課程中有提到我們在對 .NET 應用程式進行偵錯時,有個最重要的 pdb 符號檔必須隨著專案一起發行,才能夠在執行的過程中得知完整的偵錯資訊,否則不但無法在程式執行過程中載入偵錯工具 (Debugger),連例外狀況發生時也將無法得知錯誤發生的呼叫堆疊與程式碼行數。但我們在 Visual Studio 常用的 Web 單鍵發行功能,預設設定是採用 Release 方案組態進行發布,而且預設還會將所有 pdb 符號檔排除,也就是透過 Web 單鍵發行的網站,將完全不會有相對應的 pdb 檔案,本篇文章告訴該如何設定。

... 繼續閱讀 ...

如何透過 C# 類別庫讀取 Web.config 或 App.config 的參數設定值

我們經常會需要在應用程式中宣告一些參數,好讓我們的程式在不用重新編譯的情況下隨時變更參數設定值,而這樣的機制老早就內建在 .NET 之中。今天我將分享幾個常見的使用案例與範例程式,教大家如何規劃 C# 類別庫 (Class Library) 的設定檔,以及如何從 ASP.NET 應用程式 ( 包含 Web Form 與 MVC )、主控台應用程式 (Console Appliation) 與 Windows Form 應用程式正確設定 app.config 或 web.config 設定檔,以變更類別庫中參數的預設值。

... 繼續閱讀 ...

釐清 CLR、.NET、C#、Visual Studio、ASP.NET 各版本之間的關係

長久以來,我發現有許多 .NET 開發人員其實不是很熟悉自己每天都在面對的 .NET Framework, C#, Visual Studio 與 ASP.NET 版本之間的關係,以至於經常在找資料時下錯關鍵字,不容易命中想找的資料,今日特別撰文說明這幾項技術與工具在各版本之間的關係。

... 繼續閱讀 ...

Visual Studio / C# / ASP.NET MVC / SQL Server 新手上路之學習資源整理

遙望十多年前,我剛出社會的時候,拿著我在大學時期接案的 74 件作品與大學四年的程式開發經驗進入職場,當時所學會的東西跟現在比起來可謂是九牛一毛,在累積了幾年的經驗之後,回頭看見有許多莘莘學子還在為了該學些甚麼而困擾,這便萌生這篇文章的契機,希望整理一些適合新手上路的學習資源,讓大家更有方向的踏入 .NET 開發生涯。

... 繼續閱讀 ...

ASP.NET 5 Starter Web 專案內建的 NPM 設定檔 package.json 問題解決

之前一直沒有花時間去了解 npm ( Node 套件管理員 ) 的各種用法,尤其是 npm install --save 與 npm install --save-dev 的差異,今天再嘗試的時候,發現在我的本機電腦一直試不出這兩個命令有任何差異,套件都可以裝,但設定檔一直無法正確寫入,這種鬼打牆的事情,趁著這次年節假期徹底放鬆的時刻,終於被我抓到原來就是 package.json 這個檔案在搞鬼,欲知詳情,請繼續看下去。

... 繼續閱讀 ...

如何替 ELMAH 錯誤紀錄頁面加上 IP 來源限制存取設定 (IIS)

ELMAH (Error Logging Modules and Handlers) 專門用來紀錄 ASP.NET 網站執行時期的錯誤,對維護網站軟體品質來說有很大的幫助。不過 ELMAH 記錄的資訊過於詳細,一般來說我們都還是會設定各種存取限制,例如透過限定使用者或角色的方式。本篇文章我將說明如何透過 IIS7 / IIS8 內建的 IP Security 模組,來限制特定 IP 來源才能存取 ELMAH 錯誤紀錄頁面。

... 繼續閱讀 ...

魔鬼般的細節:使用 C# 的 String.Trim() 方法刪除空白字元

昨天同事提到一個網後台內容上稿的問題,客戶反映一個 Bug 說有網站的連結發生問題,點進去之後會發生 A potentially dangerous Request.Path value was detected from the client (:) 的錯誤訊息,查了好一段時間後終於發現在從後台上稿的內容中,該網址的最前面原來有一個 Unicode 的不可見字元 (U+200B),導致網址錯誤,所以瀏覽器當然無法解析該網址。當在思考著如何防呆的時候,卻一時找不到一個漂亮的解決方法,這才發現到一個 String.Trim() 魔鬼般的細節。

... 繼續閱讀 ...

部署內部網站並使用 Windows 驗證登入的標準作業流程

上週部署了一個內部網站,部署的過程由於用到很多工具與技術,其步驟稍稍有點繁瑣,特別費心整理了一下標準安裝與設定的步驟,以供後續再次部署時參考。本文會牽涉到 IIS 7.5、ASP.NET 4.5、.NET 4.5.1、SQL Server 2008 R2、Web Deploy 3.5 等技術,且該網站是以 Windows 驗證為主要驗證方法。

... 繼續閱讀 ...

Visual Studio 2013 – ASP.NET 與 Web 功能快速預覽

TechEd North America 2013 正如火如荼的進行中,看了第一天的幾場,又再次陷入資訊爆炸的狀態。這次看見 Visual Studio 2013 推出了許多 ASP.NET 與 Web 相關功能預覽,覺得還蠻興奮的,特別摘錄 Microsoft ASP.NET, Web, and Cloud Tools Preview 影片中幾個亮點,讓大家快速掌握 VS2013 與 ASP.NET 的新功能。

... 繼續閱讀 ...

解決 IE10 瀏覽器無法使用 ASP.NET 表單驗證登入的問題

今天凌晨在客戶端上線,當程式佈署到正式機後發現我們的網站唯獨只有 IE10 瀏覽器無法成功登入,任何其他瀏覽器版本或使用較低的 IE 版本都可以正常登入,使用 IE 相容性檢視也都可以正常登入,想說會不會又是罄竹難書的 IE10 搞的鬼。後來用 Fiddler 工具檢查後發現 IE10 送出的 HTTP 標頭完全沒問題,該有的 .AUTH Cookie 都有送出,但使用表單驗證機制 (FormsAuthentication) 就是無法判斷該使用者已經登入,還真的再次鬼打牆,最後還是研究出解決方法。

... 繼續閱讀 ...

使用 MSDeploy 部署網站時如何避免變更遠端目錄NTFS權限

由於我們許多專案都用 MSDeploy 進行部署,但最近因為 IIS 伺服器上的架構有所變更,卻引發專案進行部署時發生許多 NTFS 權限上的錯誤,也就是當網站部署之後,連本機系統管理者都無法透過檔案總管進入目錄的窘境,剛花了一個多小時研究,終於找到徹底解決此問題的方法。

... 繼續閱讀 ...

如何打造符合個資法規的網站系統 — 以 ASP.NET 為例

為因應個資法的來臨,筆者去年曾投稿資安人電子雜誌關於「個人資料保護法」的文章,主要是站在開發人員的角度進行思考如何打造符合個資法規的網站系統,文章中結合了我近幾年對個資法的瞭解與網站實務開發經驗,明確告知開發人員如何做好自己該做的事,千要不要認為個資法只是一個資安政策,而是你我必須認真看待與面對的日常工作。本文已於今年一月刊載於資安人電子雜誌82期,由於資安人電子雜誌是付費版的電子雜誌,礙於許多開發人員所處公司可能沒有訂閱該雜誌,今日得到資安人電子雜誌的同意,允許我將此文全文轉載於我的部落格,分享給開發人員。如讀者對資安相關議題有興趣,建議也可考慮加入資安人電子雜誌的付費會員,即時獲得最新的資安訊息。

... 繼���閱讀 ...

ASP.NET 2.0 多國語系網站與 Windows 8 的 IE10 語系設定

前天將我的 Windows 8 安裝了簡體中文的 Language pack (語言套件),設定上去後連到我的部落格網站立刻出現嚴重的例外錯誤,因此注意到從 Windows Vista / .NET 3.0+ 開始針對繁體中文簡體中文的 Language Tag 已經都改用 IETF 的標準表示字串,原本我們常用 zh-CHT 代表繁體中文,爾後都會改用 zh-Hant 來表示,若是簡體中文則是 zh-Hans。然而重點是 ASP.NET 2.0 並不支援讀取繁體中文zh-Hant簡體中文zh-Hans,只要嘗試讀取就會立刻引發例外狀況,這是各位開發人員應該注意的地方。

... 繼續閱讀 ...