2013/8/30

[ASP.NET] 莫名其妙的「不允許循環檔案參考」錯誤

這是一個真的莫名其妙的問題, 而且這個問題在本機測試時並不會發生, 只有當發行到 IIS (不論是本機或遠端伺服器) 時, 才會發生, 並造成發行失敗。

問題的症狀是這樣的, 當我想把一個 ASP.NET 專案發行到本機的 IIS 時, 跳出一個 「不允許循環檔案參考」錯誤, 從而導致發行失敗。但是, 如果在 VS (我使用的是 VS2012) 中執行, 倒是沒有任何問題發生。

後來我在 "Circular file references are not allowed. Publish ASP.NET (2.0) Website" 這篇文章裡找到解答。原來我並不是唯一遇到這種問題的人; 有其他朋友發現, 這種問題只會出在特定的情況之下, 就是網頁中若包含 User Control, 而且這個 User Control 是放在上層子目錄的時候。此外, 也有人提到這問題發生在網頁有套用巢狀 Master Page 的情況。

在我的專案中, 問題出在我將一個新網頁加入, 而且我有套用巢狀的 Master Page, 也加入了一個 User Control。不過, 我發現我即使改用單層的 Master Page, 錯誤依舊。而且, 我的 User Control 和網頁是位於同一個子目錄。

不管怎樣, 我把這個網頁搬到其它子目錄之後, 這個問題就解決了!

2013/8/27

在單元測試程式中取得 Connection 字串

這是一個相當古老的問題。不過, 似乎也很久沒遇到過了。當今天再度遇到時, 突然被嚇了一跳。問題是這樣的, 當我們建立單元測試專案時, 如果你看到測試不成功的原因是什麼「System.ArgumentException: 此處不允許應用程式相對虛擬路徑 '~/'」之類莫名其妙的錯誤的話, 大概就是依照以下解法就對了。