![](/img/trans.png)
[英]Application 'D:\home\site\wwwroot\' was recycled after detecting app_offline.htm - ASP.NET
[英]Azure App Service .net6 Deploy - Error: EISDIR: illegal operation on a directory, open '/home/site/wwwroot/wwwroot/Identity/lib/bootstrap/LICENSE'
我將我的 Asp.net 核心 Blazor WebAssembly 應用程序更新為 .net 6. 一切都很好,但是從 github 操作部署不起作用並拋出此錯誤:
...
Copying file: 'Microsoft.AspNetCore.ApiAuthorization.IdentityServer.dll'
Copying file: 'Microsoft.AspNetCore.Authentication.JwtBearer.dll'
Omitting next output lines...
Error: EISDIR: illegal operation on a directory, open '/home/site/wwwroot/wwwroot/Identity/lib/bootstrap/LICENSE'
An error has occurred during web site deployment.
Kudu Sync failed
\n/opt/Kudu/Scripts/starter.sh "/home/site/deployments/tools/deploy.sh"
Error: Failed to deploy web package to App Service.
Error: Deployment Failed with Error: Package deployment using ZIP Deploy failed. Refer logs for more details.
這里可能有什么問題?
編輯/解決方案:
以前許可證文件的路徑是: /home/site/wwwroot/wwwroot/Identity/lib/bootstrap/LICENSE/LICENSE
新文件沒有LICENSE
目錄。 因此,當新版本的應用程序到達時,它會嘗試更新 LICENSE 文件,該文件實際上是一個目錄。 刪除LICENSE/LICENSE
幫助。
我最終也刪除了 /home/site/wwwroot/ 的內容來解決這個問題。 我還需要將站點配置中的配置更新為 .NET 6,並在我的站點開始工作之前重新部署。
在 Linux 上,任何運行的 bash 部署腳本都必須具有 Unix 行尾 (LF) 而不是 Windows 行尾 (CRLF),這一點很重要。
Kuduscript 將生成帶有適合平台的行尾的腳本,但如果這些腳本被修改,或者如果您提供自己的自定義部署腳本,請務必確保您的編輯器不會更改行尾。
如果您的部署腳本出現問題,您可以隨時使用 Kudu 控制台刪除 /home/site/deployments/tools 的內容。
這是 Kudu 緩存 kuduscript 生成的部署腳本的目錄。 在下一次部署時,將重新生成腳本。
您當前看到的錯誤是運行 node/npm 進行部署的 Kudu 問題。
您當前看到的最簡單和最快的解決方法是在 package.json 中指定engine.node 。
錯誤:EISDIR:對目錄進行非法操作,打開“/home/site/wwwroot/wwwroot/Identity/lib/bootstrap/LICENSE”
EISDIR代表“錯誤,是目錄”。 這意味着 NPM 試圖對一個文件做一些事情,但它是一個目錄。 在您的情況下,NPM 試圖“讀取”一個目錄文件。 由於操作無法完成,因此拋出錯誤。
這里要確保三件事
注意:您正在為該文件的每個人授予讀取、寫入和執行權限。
根本問題似乎是將 Microsoft.AspNetCore.Identity.UI 從版本 5.* 更新到版本 6+。 對我有用的只是將 Microsoft.AspNetCore.Identity.UI 恢復到 5.0.17。
希望包中有一個永久修復程序,允許保留
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.