All posts by will | The Will Will Web

The Will Will Web

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

免費申請 StartSSL™ 個人數位簽章與網站 SSL 憑證完全攻略

銷售憑證的公司競爭激烈,國外甚至於有一家簽發憑證的業者 StartSSL™ 提供完全免費的 SSL 與 S/MIME 憑證,每次可申請一年期,憑證有效日到期之前還可以再次申請一次憑證,一樣是免費。這個免費的申請方案其實已經存在很多年,一年可以省下數千元的憑證簽證費用,是個不錯的選擇。但礙於申請的步驟十分繁瑣,可能還是有許多人不知道如何申請免費憑證。

... 繼續閱讀 ...

如何在 Powershell 開啟時自動引入常用的 ps1 指令檔腳本

最近公司內負責 IT 的同事希望能透過 Powershell 測試遠端主機的 HTTP ( Port 80 ) 是否斷線,在以前,大家可能都會安裝 telnet 工具程式來做 TCP 測試,但在伺服器安裝 telnet 工具程式不是個好習慣,因為早期經常有許多駭客程式會利用系統內建的 telnet 程式發動一些攻擊或測試,所以近幾代的 Windows 也都變成預設不安裝 telnet 程式,如果你希望在沒有安裝 telnet 程式的情況下完成 HTTP 連線偵測,就可以利用 Powershell 達成這個目標。不過,每次開啟 Powershell 都要輸入長長的指令或每次都要手動載入 ps1 指令檔不是很麻煩嗎?今天我就來說說怎樣讓這些常用的 ps1 指令檔腳本在你開啟 Powershell 的同時就自動載入完成。

... 繼續閱讀 ...

如何在 ASP.NET Web API 套用 ELMAH 錯誤紀錄模組

每個網站必備的 ELMAH (Error Logging Modules and Handlers) 模組,在使用 ASP.NET Web API 時卻無法自動套用,也就是說 ASP.NET Web API 執行的過程中發生任何例外,預設都不會自動寫入 ELMAH 指定的儲存區。那是因為 ASP.NET Web API 的主要用途是用來回應呼叫 RESTful API 的用戶端要求,為了不讓用戶端得到不符合 JSON 或 XML 格式的訊息內容,因此所有例外都會被 ApiController 基底類別給攔截,如果我們想在 ASP.NET Web API 實作錯誤紀錄,則必須透過 Action Filter 來設定。

... 繼續閱讀 ...

新書出版:〔ASP.NET MVC 4 開發實戰〕已於 12/20 上市

俗話說的好,有一就有二,無三不成禮。兩年多前出版了人生第一本書 ASP.NET MVC 2 開發實戰〕,獲得廣大開發人員的肯定與迴響,還曾經一度爬上天瓏排行榜冠軍,這些對我來說都是美好且難得的回憶。一年多前,也應邀翻譯了一本〔Windows Phone開發實戰〕書籍,還藉此提升了英文閱讀能力,也算有所收穫。今年,排除一切困難,在百忙之中抽空完成了前年這本書的改版,名為〔 ASP.NET MVC 4 開發實戰〕且已在幾天前正式出版上市,趁著這次新年四天年假,著實是看書的大好時機,大家加油! (^_^)

... 繼續閱讀 ...

ASP.NET Web API 無法輸出 Entity Framework 物件的解法

開發 ASP.NET Web API 時,如果專案使用 Entity Framework 技術的話,當 Entity 與 Entity 之間包含導覽屬性 (Navigation Property) 的話,在預設的情況下,ASP.NET Web API 在輸出 JSON 格式時,會引發一個 System.InvalidOperationException 的例外狀況,其錯誤訊息為「'ObjectContent`1' 類型無法序列化內容類型 'application/json; charset=utf-8' 的回應主體。」,若要解決這個問題,有幾個必須注意的地方,才能讓 ASP.NET Web API 正常且穩定的運作。

... 繼續閱讀 ...

Windows 下的 TEMP 目錄中檔案過多會導致系統效能驟降

上週,我們一個主機代管的客戶,因為客戶端機房搬遷的關係,我們幫客戶的主機關機並且移到另一個機房開機,但開機過後一、兩天,客戶回報主機有效能變差的情況,開啟網站首頁要等好幾分鐘才會出現畫面。當效能降低時,IIS 的反應時間會拉的很長,所以同時上線人數也會開始累積,只要重開 IIS 的應用程式集區就會解決效能問題,但主機的反應還是會頓頓的,我們的人查了好多天還是無法理解其始末,問題也為解決,直到有人提出了一個奇特的症狀 (symptom),這才讓我找到線索解決這次危機,欲知詳情,請繼續看下去…

... 繼續閱讀 ...

ASP.NET MVC 使用 Html.BeginForm 預設多載引發的問題

最近因為有客戶要求將網站部署到 Windows Azure WebSites 雲端平台,原本在開發環境測試都沒什麼狀況,反而是部署到 Windows Azure WebSites 之後才發現一個棘手的問題,一般網頁瀏覽並不會有問題,而是當使用 IE 瀏覽器,且有表單要送出資料時就會發生 502 - Web server received an invalid response while acting as a gateway or proxy server. 的問題,這才發現一個 ASP.NET MVC 的小臭蟲(Bug)。

... 繼續閱讀 ...

如何替 SQL Server 2012 LocalDB 卸載所有使用者資料庫

每次用 Visual Studio 2012 開發一個新的、有用到 LocalDB 資料庫的專案,只要專案執行起來,就會將資料庫自動掛載到 SQL Server 2012 Express LocalDB 的執行個體裡,所以用一段時間後自然也會有一堆資料庫在上面,但大部分資料庫應該都是可以卸載 (Detach) 的,因此我自己寫了一支 T-SQL 可以批次卸載所有使用者資料庫,以便看到一個乾淨的 LocalDB 執行個體。

... 繼續閱讀 ...

Exchange 若發生 451 4.4.0 DNS query failed 錯誤應如何處理

前陣子有好長一段時間公司內的 Exchange 就是沒辦法寄信到我公司一個合作夥伴的信箱裡,我公司裡的 Exchange 已經安裝超過5年了,第一次遇到這個問題,而且神奇的是,也只有這個合作夥伴的信箱有問題,每次只要寄信給他們總是被退信,都一定要改用 Gmail 寄信對方才能收到。相反的,對方也跟我說他們其他客戶沒有寄不進去的,只有我們有無法傳送郵件的問題。真的又看到鬼了,兩造雙方查了很久,也都互推自己沒問題,且事實也是如此,真像只有一個,這時我又柯南上身,最終查出個水落石出。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

解決WebMatrix 2.0不斷提示新版升級的問題 (與Web PI有關)

最近開啟 Microsoft WebMatrix 2.0 都會一直提示我要升級,雖然我每次都有乖乖的安裝升級,但卻每次都要我安裝 Microsoft SQL Server Compact 4.0 SP1 指令碼工具這個套件,討厭的地方就在於這套件並沒有官方的下載頁面,所以也不知道去哪裡找下載連結,最後才研究出真正的原因在於 Microsoft WebMatrix 對於Microsoft SQL Server Compact 4.0 SP1 Scripting Tool 套件的升級與否是用「英文版」來判斷的,但每次透過 Web Platform Installer 4.0 安裝的卻都只有安裝繁體中文版,所以才造成每次都提示要升級的窘境。

... 繼續閱讀 ...

如何還原資料庫到 SQL Server 2012 LocalDB 執行個體

雖然 SQL 2012 的 LocalDb 與 SQLEXPRESS 師出同門,不過由於執行個體的執行方式不同,因此資料庫特性也有些不太一樣,就以常見的「還原資料庫」功能來說,預設就無法透過 SQL Server Management Studio (SSMS) 進行還原資料庫的動作,雖然透過 T-SQL 指令還是可以正確執行,不過就是麻煩多了!今天我就來分享一個小技巧,讓你能夠使用 SSMS 圖形化操作介面還原資料庫到任意一個 LocalDb 執行個體,省去許多麻煩的 T-SQL 撰寫工作,也簡化還原資料庫到 LocalDb 執行個體的複雜度。

... 繼續閱讀 ...