突然、Web Deploymentが失敗し始めました。
Could not find file 'D:\home\site\wwwroot\App_Offline.htm'.
サービスを停止しましたが、展開はまだ失敗します。
Kudu PowerShell UIでwwwrootからファイルを削除しようとすると、「404 file not find」というエラーが表示されますが、更新後もそのファイルが表示されます。 PowerShellでファイルを直接削除しようとするとエラーが発生します
Cannot remove item D:\home\site\wwwroot\Azure.Storage.dll: Invalid access to memory location.
At line:1 char:1
+ del .\Azure.Storage.dll
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (D:\home\site\wwwroot\Azure.Storage.
dll:FileInfo) [Remove-Item], IOException
+ FullyQualifiedErrorId : RemoveFileSystemItemIOError,Microsoft.PowerShell
.Commands.RemoveItemCommand
サービスを削除して再作成しましたが、Visual Studioからの最初の展開はOKでした。しかし、翌日の展開は再び失敗しました。その展開間の唯一のことは、VSTSからの展開でした。しかし、VSTSおよびVisual Studioから任意の順序で問題なく展開できました。
私はそのApp Serviceの所有者です。
展開ログ。
(2018-08-06 13:05:03) An error occurred when the request was processed on the remote computer.
Could not find file 'D:\home\site\wwwroot\App_Offline.htm'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync)
at System.Xml.XmlWriterSettings.CreateWriter(String outputFileName)
at System.Xml.XmlWriter.Create(String outputFileName, XmlWriterSettings settings)
at Microsoft.Web.Deployment.AppOfflineRuleHandler.AddAppOfflineFilesToEachApp(DeploymentBaseContext baseContext, Boolean whatIf)
at Microsoft.Web.Deployment.AppOfflineRuleHandler.AddChild(DeploymentSyncContext syncContext, DeploymentObject destinationParentObject, DeploymentObject& sourceObject, Boolean& proceed)
at Microsoft.Web.Deployment.DeploymentSyncContext.HandleAddChild(DeploymentObject destParent, DeploymentObject sourceObject, Int32 position)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncDirPathChildren(DeploymentObject destRoot, DeploymentObject sourceRoot)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildren(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildren(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildren(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildren(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)
at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable`1 syncPassId, String syncSessionId)
at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable`1 passId, String user, String siteName)
Publish failed to deploy.
突然のVSTSの既定の展開モードはすべて、Run-From-Zipになりました。
解決策は、VSTSで展開方法の選択チェックボックスを設定し、Web展開が選択されていることを確認することです。
サービスを「ロック解除」するには、設定を削除する必要がありますWEBSITE_RUN_FROM_Zip from アプリケーション設定ページ
注:この設定の新しい名前はWEBSITE_RUN_FROM_PACKAGE
今日、ネットコア2.2でも同じ問題が発生しました。解決策は、Azureアプリ設定の「WEBSITE_RUN_FROM_PACKAGE」の設定を削除することでした
この同じ問題に見舞われました-ファイルシステムはWEBSITE_RUN_FROM_PACKAGE=1
。 Azure App Serviceは、最近のプラットフォームのアップグレード中にこのアプリ設定を自動的に追加しているようです。
Run-From-Package over web deployを使用することをお勧めしますが、WEBSITE_RUN_FROM_PACKAGE=0
。 Azure DevOpsを使用している場合- App Service Deploy v4の最新バージョンはRun-From-Packageをサポート 。
Appp設定WEBSITE_RUN_FROM_Zipを削除してから、VSからデプロイを再試行します。これは私のために働いた
同じメッセージとスタックトレースで展開に失敗しましたが、リソースの場所を許可しないポリシー割り当てが原因でした。
(リソースは米国西部で作成された後、米国西部2のみを許可するポリシーがテナントルートレベルで適用されました。)
ポリシーが更新された後、展開は成功しました。