TeamCity显示模式对话框

时间:2016-10-31 14:39:39

标签: asp.net azure

我有Azure WebJobs的ASP.NET MVC应用程序。我已经开始将WebJobs自动发布到我的Azure云。但是当通过VS发布WebJobs时会出现模态对话框。我认为在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

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。基本上,为了访问azure计划,需要对azure portal进行身份验证,因此需要输入凭据的模式。 我设法绕过这个博客:

https://azure.microsoft.com/en-us/blog/enabling-command-line-or-continuous-delivery-of-azure-webjobs/

azure门户网站下载页面的链接已过时。可以找到更新的链接here

发布设置文件下载后,我将其复制到TC服务器,因为我不希望它包含在项目中。

然后我在项目的Properties文件夹下创建了一个webjobs.props文件

enter image description here

以下是内容:

<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服务器上的路径。

现在,在发布webjob时,在azure上正确创建/更新了计划。

希望这个帮助