2010-10-19 80 views
21

我有一個使用.NET 4.0開發的使用TFS作爲源代碼控件的AJAX沉重的ASP.NET Web應用程序。我們最近將開發工具升級爲僅使用VS2010和TFS 2010,但現在每次檢出文件時,我們都會看到Visual Studio重新加載所有符號,並且所有會話都被刪除。當我在TFS中籤出文件時,創建/刪除了App_offline.htm

在發佈了一些錯誤日誌代碼之後,我們發現了回收的原因,因爲它認爲App_offline.htm在我們簽出時會發生變化。這在項目的任何地方都不存在,我的SO-fu找到了一些關於SQL Express的信息,使得這個文件被創建和刪除,所以這可能就是這裏發生的事情。

它看起來像我有SQL-Express安裝,但即使禁用正在運行的服務,問題仍然存在。

有沒有什麼辦法阻止添加/刪除這個文件的檢查,如果這確實是發生了什麼?當我簡單地檢出一個文件時,讓應用程序重新啓動是令人沮喪的...

回答

14

我發現了一個解決方法。 1)轉到Visual Studio緩存app_offline.htm文件的位置。 C:\ Users [用戶] \ AppData \ Roaming \ Microsoft \ VisualStudio \ 11。0 \(更換[用戶]與您的用戶名)

2)刪除app_offline.htm文件

(注:這本身不足以解決它,因爲VS再次重新生成該文件時,它找不到)

3)創建一個目錄名爲app_offline.htm(目錄!)

這本質上導致錯誤與試圖使用該文件,因爲它不是一個文件,名稱衝突意味着VS不能試圖重建進程文件。幸運的是,錯誤沒有不必要的副作用。

現在繼續使用VS和Team Foundation Server,並且不會經常重新加載appdomain!

這當然意味着任何發佈過程都可能不會使用app_offline.htm文件,因此您需要密切關注這一點。

+0

這太棒了!在發現的榮譽。作爲額外的好處,TFS結帳操作要快得多,我想它正在等待應用程序域重新加載。 – XwipeoutX 2013-06-12 00:11:47

0

也許,有人這樣做在文件app_offline簽入,當你拿到項目,該文件來。 看看你的源代碼庫。

+0

文件沒有簽入。正如我所說的,無論何時檢出任何文件,該文件正在創建和刪除,大概是爲了強制回收,我不想發生。 – XwipeoutX 2010-12-05 22:08:42

1

由於我有這個問題,所以我決定嘗試跟蹤它。首先,我發現如果我的數據庫連接處於脫機狀態,並且單擊服務器資源管理器中的刷新按鈕,它會在我的網站的根目錄中創建app_offline文件,然後將其刪除。我重新制作了好幾次。

我實際上在服務器資源管理器中有3個數據庫連接。如果我斷開與遠程SQL服務器上的數據庫實際連接的2個連接,則在我刷新時,不會產生app_offline文件。如果我從LOCAL .MDF文件斷開連接,然後刷新(重新連接到該.mdf文件,紅色斷開連接的X消失),它只生成app_offline文件。果然,每次重新連接到本地數據庫後,app_offline.htm文件都會顯示在我的回收站中。

更進一步,我分離了本地數據庫(.mdf文件)並將文件移動到我的桌面。然後重新啓動VS2010,無法重新產生錯誤。我把這些文件放回去,重新建立了連接,並重新開始獲取app_offline。然後我禁用了SQLExpress服務,並且得到了一些其他的錯誤,,但即使在禁用了SQLExpress服務的情況下,我仍然在我的回收站中收到了app_offline。

所以,我想我的答案是擺脫.mdf本地數據庫,如果可以的話。這對我來說不是一個好選擇,因爲我在遠程處理代碼時需要本地數據庫,但如果您不需要任何本地數據庫,也許可以嘗試刪除它們。

注意:我使用的是VS2010(有時是VS2008)和SQLExpress 2008 RS。我不使用TFS。

+0

對於那些在他們的解決方案中使用SQLExpress的人來說看起來很有用。我們不是 - 我們的服務器資源管理器中沒有數據連接。 – XwipeoutX 2010-12-07 23:36:10

相關問題