AzureWebJobsを使用したASP.NETMVCアプリケーションがあります。また、WebJobをAzureCloudに自動公開するように設定しました。ただし、VSを介してWebJobを公開すると、モーダルダイアログボックスが表示されます。TeamCityでも同じだと思いますが、エラーが発生して公開に失敗します。
どうすればそれを無効にしてWebJobsを公開できますか?
[Step 1/1]
[15:19:13][Step 1/1] Unhandled Exception: System.InvalidOperationException: Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.
[15:19:13][Step 1/1] at Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.RunAsyncTask[T](Task`1 task)
[15:19:13][Step 1/1] at Microsoft.Web.WebJobs.Publish.Tasks.CreateScheduledWebJob.<>c__DisplayClass1f.<GetAuthorizationHeader>b__1e()
[15:19:13][Step 1/1] at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[15:19:13][Step 1/1] at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[15:19:13][Step 1/1] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[15:19:13][Step 1/1] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[15:19:13][Step 1/1] at System.Threading.ThreadHelper.ThreadStart()
[15:19:16][Step 1/1] Process exited with code 255
[15:19:16][Step 1/1] Step Publish to Azure (with WebJobs) (Command Line) failed
私も同じ問題を抱えていました。基本的に、紺碧のスケジュールにアクセスするには、紺碧のポータルへの認証が必要であるため、資格情報を入力するためのモーダルが必要です。私はなんとかこのブログをたどって回ることができます:
Azureポータルのダウンロードページへのリンクが古くなっています。新しいリンクはここにあります。
公開設定ファイルがダウンロードされたら、プロジェクトに含めたくなかったので、TCサーバーにコピーしました。
次に、プロジェクトのプロパティフォルダーの下にwebjobs.propsファイルを作成しました
そしてここに内容があります:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="AfterSetScheduleProperties" AfterTargets="SetScheduleProperties">
<PropertyGroup>
<PublishSettingsPath>C:\Local_Properties\Azure\FileName.publishsettings</PublishSettingsPath>
<SubscriptionId>XXXXXX-XXXX-XXXX-XXXXX-XXXXXXXX</SubscriptionId>
</PropertyGroup>
</Target>
ダウンロードした公開設定ファイルでサブスクリプションIDを見つけました。公開設定ファイルのパスは、TCサーバー上のパスです。
これで、Webジョブを公開するときに、Azureでスケジュールが正しく作成/更新されます。
この助けを願っています
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加