問題TFS CI建立天青Web應用程序(應用服務)失敗,因爲文件鎖定(msvcr100.dll)
嘗試發佈從TFS CI的Azure的Web應用程序時,遇到了一個部署錯誤。文件被鎖定,這會阻止構建更新。
症狀
- 出版手動(Web部署在Visual Studio中發佈),通常成功。
- 停止Web應用程序併發布允許它成功,但是如果我們需要每次都需要停止並啓動Web應用程序,那麼這會損害我們CI的重點。
- CI發佈到Web角色和工作者角色似乎沒有這個問題,我們只在將它發佈到Web應用程序(以前的Web站點,當前的Azure門戶術語現在是應用程序服務)上。
- 只有通過TFS通過CI構建發佈才能以此方式一致地失敗。
錯誤
Web部署任務失敗。 (Web Deploy無法修改目標文件 'msvcr100.dll',因爲它被外部 進程鎖定。爲了允許發佈操作成功,您可能需要重新啓動應用程序以釋放鎖,或使用 的AppOffline規則處理.NET應用程序在你的下一個發佈 試圖瞭解更多:。 http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE)
在鏈路的信息是不是非常有幫助。
ERROR_FILE_IN_USE 診斷 - 由於目標文件當前正在使用中,所以無法覆蓋或刪除目標文件。 解決方案 - 確保在執行同步之前目標文件未被使用。如果要將內容同步到IIS 7或更高版本上託管的網站 (使用appHostConfig,iisApp或 contentPath提供程序),請考慮通過啓用appOffline規則在 期間使應用程序脫機。
試圖分辨率
- 我們使用New Relic的 - 從那以後刪除了New Relic這個問題仍然存在。這個二進制文件似乎是一個微軟的庫,但它不清楚它如何與應用程序相關(它沒有被引用)。
- 其他一些SO問題已經解決了與發佈類似的問題,但這些問題都沒有涉及從TFS CI獲取此問題。
- 一個答案建議使用的發佈配置文件的EnableMSDeployAppOffline配置,並增加這一配置從內VS手工做出版工作確定,但它不」 t從TFS/CI自動發佈時解決問題。
編輯
How to take web app offline while publishing?與使用EnableMSDeployAppOffline配置走的是應用的離線交易 - 不幸的是這個配置似乎只通過Visual Studio(不CI)做WebDeploy時得到支持。
見截圖你找到了一個解決方案? –
沒有找到解決方案,目前我們直接從VS發佈該項目。值得慶幸的是,這個網站不在我們的主要產品構建週期內,但這意味着我們無法使用我們的CI流程。儘管如此,阻止我們將主要產品從Cloud Service遷移到App Service。 –
這很糟糕,我試圖使用VSTS設置配置項,但我得到這個錯誤,並且手動重新啓動應用程序沒有任何意義,只要CI去 –