簡體   English   中英

Azure App Service .net6 部署 - 錯誤:EISDIR:對目錄進行非法操作,打開“/home/site/wwwroot/wwwroot/Identity/lib/bootstrap/LICENSE”

[英]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.

這里可能有什么問題?

  • 應用程序適用於本地
  • 我在配置中將 azure 應用更新為 .net6
  • 我試圖重新啟動應用程序
  • 該應用程序位於美國中部地區

編輯/解決方案

以前許可證文件的路徑是: /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 試圖“讀取”一個目錄文件。 由於操作無法完成,因此拋出錯誤。

這里要確保三件事

  1. 確保文件存在。 如果沒有,您需要創建它。 (如果 NPM 依賴於文件中的任何特定信息,您將需要在那里擁有該信息)。
  2. 確保它實際上是一個文件而不是目錄。
  3. 它具有正確的權限。 您可以使用“sudo chmod 777 FILE_NAME”將文件更改為具有所有權限。

注意:您正在為該文件的每個人授予讀取、寫入和執行權限。

根本問題似乎是將 Microsoft.AspNetCore.Identity.UI 從版本 5.* 更新到版本 6+。 對我有用的只是將 Microsoft.AspNetCore.Identity.UI 恢復到 5.0.17。

希望包中有一個永久修復程序,允許保留

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM