web-dev-qa-db-ja.com

Visual StudioおよびAppサービスからのWeb展開で何が問題になっていますか?

突然、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.
22
Rambalac

突然のVSTSの既定の展開モードはすべて、Run-From-Zipになりました。

解決策は、VSTSで展開方法の選択チェックボックスを設定し、Web展開が選択されていることを確認することです。

サービスを「ロック解除」するには、設定を削除する必要がありますWEBSITE_RUN_FROM_Zip from アプリケーション設定ページ

注:この設定の新しい名前はWEBSITE_RUN_FROM_PACKAGE

30
Rambalac

今日、ネットコア2.2でも同じ問題が発生しました。解決策は、Azureアプリ設定の「WEBSITE_RUN_FROM_PACKAGE」の設定を削除することでした

18
joakimja

この同じ問題に見舞われました-ファイルシステムはWEBSITE_RUN_FROM_PACKAGE=1Azure App Serviceは、最近のプラットフォームのアップグレード中にこのアプリ設定を自動的に追加しているようです。

Run-From-Package over web deployを使用することをお勧めしますが、WEBSITE_RUN_FROM_PACKAGE=0。 Azure DevOpsを使用している場合- App Service Deploy v4の最新バージョンはRun-From-Packageをサポート

9

Appp設定WEBSITE_RUN_FROM_Zipを削除してから、VSからデプロイを再試行します。これは私のために働いた

2
joey

リリース手順で自分で展開方法を選択した場合、これは表示されません。

enter image description here

1
rubeonline

同じメッセージとスタックトレースで展開に失敗しましたが、リソースの場所を許可しないポリシー割り当てが原因でした。

(リソースは米国西部で作成された後、米国西部2のみを許可するポリシーがテナントルートレベルで適用されました。)

ポリシーが更新された後、展開は成功しました。

0
Joseph Anderson