Dot-Net

為什麼 app_offline.htm 一直出現在我的 Web 項目中?

  • February 14, 2019

我定期(每隔幾天左右)將我的 ASP.NET Web 項目發佈到本地 Web 伺服器。

但是最奇怪的事情一直在發生……一個名為“app_offline.htm”的文件不斷出現在我的網路項目中,未經請求!

我已經多次刪除了這個文件,它不在原始碼管理中,而且 AFAIK 沒有其他人篡改該項目。但實際上每次我嘗試發布該項目時,我的發布Unable to add 'app_offline.htm' to the Web site. The file 'app_offline.htm' already exists in this Web site.Error: The operation could not be completed. Unspecified error都失敗了(:p

在閱讀了有關此文件的一些資訊後,我認為它是一種使您的應用程序離線的簡單方法。但我沒有看到它應該無緣無故地任意強加給你。

那麼,這是哪裡 *&^%$#@%!! 文件來自,為什麼VS認為我需要它?

這是 .NET 2.0 的“功能”

http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx

http://www.codeproject.com/KB/aspnet/app_offline.aspx

“解決此問題的最簡單方法是永遠不要直接發佈到您的伺服器。無論如何您都不應該……發佈到本地文件夾然後複製站點”

你使用 Visual Studio 嗎?http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=102778

預設情況下,發布過程會在您的目標目錄中放置一個,然後在發布過程完成後將其刪除。也許它在嘗試刪除它時被阻止?

這是 MSDN 文章的摘錄:

在複製應用程序文件之前,複製網站工具將一個名為 App_offline.htm 的文件放入目標網站的根目錄中。當 App_offline.htm 文件存在時,對網站的任何請求都會重定向到該文件。該文件顯示一條友好的消息,告訴客戶網站正在更新。複製完所有網站文件後,複製網站工具會從目標網站中刪除 App_offline.htm 文件。

我猜出於某種原因,有兩個發布事件以某種方式相互衝突?

我解決這個問題的方法是使用 nant 來建構我的解決方案,然後只複製我想要的東西。我確實首先使用該功能複制了 app_offline 文件,但是當它被複製和刪除時我會進行管理。

引用自:https://stackoverflow.com/questions/2148125