Visual Studio の発行機能を利用してアプリケーションを公開しようとした際に下記のようなエラーに出くわしました。今回は当該のエラーの解決方法と経緯を紹介します。
Visual Studio から Azure App Service へ公開した際のエラーについて
Visual Studio で公開したら下記のようなエラーウィンドウが出てきました。
公開でエラーが発生しました。 ビルドに失敗しました。詳細については、出力ウィンドウを確認してください。
診断ログは次の場所に書き込まれました: "C:\Users\username\AppData\Local\Temp\tmpD2D3.tmp"
tmpファイルの中身は下記のようなエラーがでていました。
2024/04/09 17:35:15 System.AggregateException: 1 つ以上のエラーが発生しました。 ---> Microsoft.WebTools.Shared.Exceptions.WebToolsException: ビルドに失敗しました。詳細については、出力ウィンドウを確認してください。 --- 内部例外スタック トレースの終わり --- ---> (内部例外 #0) Microsoft.WebTools.Shared.Exceptions.WebToolsException: ビルドに失敗しました。詳細については、出力ウィンドウを確認してください。<--- Microsoft.WebTools.Shared.Exceptions.WebToolsException: ビルドに失敗しました。詳細については、出力ウィンドウを確認してください。 ===================
詳細については出力ウィンドウを確認するようにとのことなので確認。
'https://<自分のサイトのURL>.scm.azurewebsites.net/api/zipdeploy' 経由で ZIP ファイルを公開しようとしましたが、HTTP 状態コード 'Unauthorized' で失敗しました。
認証エラーだと?ということでデプロイユーザーの Azure App Service や Azure App Service Plan のロールを確認しましたが、共同作成者ロールは付与されており、所有者ロールを付与してもエラーは変わりませんでした。
エラーの解決方法
というわけでUnauthorizedが出たということで下記のような内容を確認しましたが解決せず。
- Visual Studio にログインしているユーザーが当該リソースにアクセス可能か?
- Visual Studio にログインしているユーザーがデプロイするのに必要な権限を持っているか?
というわけで困りました。そういえばデプロイするのに必要な発行プロファイルってどうなってたかな?とみてみます。
Azure App Service の Web Apps (Webアプリ) の「概要」から「発行プロファイルのダウンロード」がエラーになりました。
下記のようなエラーメッセージです。
Basic authentication is disabled.
これでふとデプロイが制限されてる?と気づきました。
Azure App Service Web アプリの「構成」→ 「SCM 基本認証の発行資格情報(SCM Basic Auth Publishing Credentials)」という項目が新しく追加されていました。「FTP 基本認証の発行資格情報」の設定は前からありましたが、気づきませんでした。
結論、新しく作成されたApp Service はこの「SCM 基本認証の発行資格情報」の設定がOFFになっているというのが原因でした。
ONにしてあげて「発行」し直したら無事発行することができました。