The Will Will Web | 五月 2011

The Will Will Web

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

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

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

... 繼續閱讀 ...

如何把 SQL Server 標準版當成 SQL Server Express 來用

大家會不會看到這標題覺得很奇怪,怎麼會有人安裝了 SQL Server 標準版了,還會想拿來當成 SQL Server Express 來用呢?其實真正的需求是這樣的,當我們要設定 SQL Server 連線參數時,在指定 Data Source 的時候會指定伺服器名稱,而有客戶的 ASP.NET 網站竟然把連線參數寫死在程式裡,而且廠商倒閉了以致於沒有原始檔可以修改後重新編譯,當時的資料庫的 Data Source 是採用 (local)\SQLEXPRESS 為伺服器名稱,現在的卻重新安裝了 SQL Server 標準版,所以根本連不上伺服器,這時學會這個技巧就很重要了。

... 繼續閱讀 ...

使用 Java 開發的系統需注意 DNS 快取的問題 (快取一輩子)

之前有替客戶安裝一套 IBM OmniFind Yahoo! Edition 在 Linux 環境下,採用的 Java 版本為 1.5.0,最近客戶的主機換機房了導致 IP 變更,搬過去之後發現這個搜尋引擎還能夠查詢,但是卻無法對原本網站進行索引動作,就算我們重新將索引重建,還是無法所以成功,所呈現的訊息都是無法連接至網站,但是本機設定的 DNS 並沒有問題,連線、防火牆也沒問題,即便設定了 /etc/hosts 也還是連不上,這實在太奇怪了,查到最後才發現到原來是 JDK 1.5 以前預設會將 DNS 快取一輩子 (cache forever),才會導致原本網站怎麼樣都連不上的情況。

... 繼續閱讀 ...

如何清除 Management Studio 登入時的伺服器名稱歷史清單

我的 SQL Server Management Studio 已經使用了非常久了,由於工作上經常要連接到不同的資料庫執行個體,所以每次開啟 Management Studio 實在伺服器名稱那邊的歷史清單項目就非常多,數量多倒還沒關係,重點是這些清單裡已經有許多資料庫由於電腦名稱變更過已經連不到了,而且還沒提供介面可清空或管理這些歷史連線清單(MRU List),我花了時間研究終於找到清空這些歷史清單的方式。

... 繼續閱讀 ...

如何利用「資料庫發行精靈」將新版 SQL 資料庫降級成舊版

不知道各位有沒有遇過一種狀況,那就是原本 SQL Server 2005 的資料庫,將資料庫卸離 (Detach) 後丟進新版的 SQL Server 版本掛載 ( 例如 SQL 2008 或 SQL 2008 R2 ),然後突然間有同事說他的資料庫是舊版的,而你怎樣都再也無法將資料庫卸離後掛載到舊版的 SQL Server 了?!這問題似乎不是很多人知道怎樣處理,今天特別撰文說明整個轉移資料庫的流程,而且此功能已經內建於 Visual Studio 2010 之中,使用上非常方便,只是若沒人提起這功能,自己要找到這功能還真有點困難。^^

... 繼續閱讀 ...

如何讓 Firefox 瀏覽器自動啟用整合式 Windows 驗證

一般在公司內部的 Web 應用程式若採用 Windows 驗證方式,一般都會採用 Internet Explorer 瀏覽器來瀏覽網站,不過若有使用者要用 Mozilla Firefox 的話,預設是沒辦法自動啟用 Windows 驗證的,我想 Firefox 應該是基於某種安全性考量才預設關閉 Windows 驗證,若想讓 Firefox 自動啟用 Windows 驗證可以考慮本篇文章的教學說明。

... 繼續閱讀 ...

如何在 SQL Server 資料庫設計「一對一」表格關聯

我們在做資料庫設計時,通常都會需要設計表格之間的關聯,不過一般來說都是設定一對多的表格關聯,如果是多對多的表格關聯通常都會多設計一張表格來儲存兩個表格之間多對多的關聯關係。但是如果我們今天單純的只是想設計一些擴充欄位到另一個獨立的表格裡,這時我們在 SQL Server 裡還需要設計關聯嗎?還是在程式中自己知道就好不需要設計關聯呢?其實是需要的,只是很少人知道可以這樣設計而已!

... 繼續閱讀 ...

介紹好用 Visual Studio 2010 擴充套件:NuGet 套件管理員

長久以來微軟的開發平台一直都沒有像其他開發平台常見的套件管理工具,像是 PHP 就有 PEAR 可用、Perl 也有 PPM (Perl package manager),甚至 Python 也有 PyPM (Python Package Manager) 等等。大約在去年八月左右微軟內部開始進行了一個套件管理員的開發計畫名為 NuGet,此工具主要跟 Visual Studio 2010 結合使用,可讓你在使用 Visual Studio 2010 開發專案的過程中隨時安裝、更新套件,像是 jQuery, ELMAH, log4net, … 等等目前共有上千個套件可供選擇,NuGet 的出現可說是所有開發人員的福音,絕對是個必學的工具之一!

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

將 SQLEXPRESS 從 SQL 2005 升級 SQL 2008 的注意事項

像我從 Visual Studio 2008、Visual Studio 2008 SP1、Visual Studio 2010 一直到現在的 Visual Studio 2010 SP1 一路升級上來,在眾多開發工具與開發環境裡有個軟體的版本一直不會變,那就是開發工具內建的 SQLEXPRESS 執行個體,如果你一開始安裝了Visual Studio 2008 就會預設先安裝好 SQL Server 2005 Express Edition 進去,之後升級 Visual Studio 並不會連帶升級 SQLEXPRESS 執行個體的版本,若你單純的想移除 SQLEXPRESS 後改裝新版會引發一些不必要的錯誤,這裡我整理了些問題與注意事項供各位參考。

... 繼續閱讀 ...

執行 Entity Framework 的「從資料庫更新模型」為何不更新

最近有同事遇到一個技術問題,他們的專案是採用 Entity Framework 技術,不過由於客戶端需求變更,導致資料庫欄位屬性被變更了,原本為 NOT NULL 的欄位從資料庫端已經改成了可允許 NULL,不過他們在 Visual Studio 2010 的 ADO.NET 實體資料模型設計工具 (ADO.NET Entity Data Model) 編輯 EDMX 檔案時發現執行 從資料庫更新模型 (Update Model from Database) 並不會自動反應資料庫的欄位變更到這裡,但是新增、刪除資料庫欄位時卻會更新,他們覺得很奇怪,以下就是我的回答。

... 繼續閱讀 ...