【发布时间】:2017-05-17 05:40:36
【问题描述】:
我创建了一个控制台应用程序来阅读 gmail 收件箱。我需要我的控制台应用程序每 15 分钟阅读一次电子邮件。所以我将控制台应用程序发布为具有运行模式的网络作业:“按需”并使用 azure 服务(网络应用程序)发布该应用程序)。
但是当我选择发布为 azure webjobs 时,我的 webjobs 似乎没有运行,并且没有安排 webjobs 的选项。
我一发布就在 Visual Studio 中收到此错误:
'ICICIEmailParser.sstageEntities-Web.config Connection String' argument cannot be null or empty
webjob 没有预定时间,所以我从 azure 门户手动运行 webjob,查看日志时我看到以下错误
[01/03/2017 06:48:38 > 7e6d88: SYS INFO] 状态更改为正在初始化 [01/03/2017 06:48:38 > 7e6d88: SYS INFO] 检测到作业目录更改:作业文件“ICICIEmailParser.application”时间戳在源目录和工作目录之间不同。 [01/03/2017 06:48:39 > 7e6d88: SYS INFO] 使用脚本主机 - 'WindowsScriptHost' 运行脚本'ICICIEmailParser.exe' [01/03/2017 06:48:39 > 7e6d88: SYS INFO] 状态更改为正在运行 [01/03/2017 06:48:40 > 7e6d88:错误] [01/03/2017 06:48:40 > 7e6d88:ERR] 未处理的异常:System.AggregateException:发生了一个或多个错误。 ---> System.AggregateException:发生一个或多个错误。 ---> System.Net.HttpListenerException:访问被拒绝 [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 System.Net.HttpListener.SetupV2Config() [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 System.Net.HttpListener.Start() [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 Google.Apis.Auth.OAuth2.LocalServerCodeReceiver.d__6.MoveNext() [01/03/2017 06:48:40 > 7e6d88: ERR ] --- 从先前抛出异常的位置结束堆栈跟踪 --- [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) [01/03/2017 06:48:40 > 7e6d88:ERR] 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp.d__8.MoveNext() [01/03/2017 06:48:40 > 7e6d88: ERR ] --- 从先前抛出异常的位置结束堆栈跟踪 --- [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) [01/03/2017 06:48:40 > 7e6d88:ERR] 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__4.MoveNext() [01/03/2017 06:48:40 > 7e6d88: ERR ] --- 从先前抛出异常的位置结束堆栈跟踪 --- [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) [01/03/2017 06:48:40 > 7e6d88:ERR] 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__1.MoveNext() [01/03/2017 06:48:40 > 7e6d88: ERR ] --- 内部异常堆栈跟踪结束 --- [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 System.Threading.Tasks.Task
1.GetResultCore(Boolean waitCompletionNotification) [01/03/2017 06:48:40 > 7e6d88: ERR ] at System.Threading.Tasks.Task1.get_Result() [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 GmailQuickstart.Program.d__3.MoveNext() [01/03/2017 06:48:40 > 7e6d88: ERR ] --- 内部异常堆栈跟踪结束 --- [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 System.Threading.Tasks.Task.WaitAll(任务 [] 任务,Int32 毫秒超时,CancellationToken 取消令牌) [01/03/2017 06:48:40 > 7e6d88: ERR ] 在 GmailQuickstart.Program.Main(String[] args) [01/03/2017 06:48:40 > 7e6d88: SYS INFO] 状态更改为失败 [01/03/2017 06:48:40 > 7e6d88: SYS ERR ] 由于退出代码 -532462766,作业失败
我做过的事情:
我有一个 google oauth 的 client-secret.json 文件。 我在我的 azure web 应用程序身份验证/授权中添加了 google secret 和 client id 我在谷歌开发者控制台中设置了 javascript 来源和重定向 uri
这是我的主要方法:
static void Main(string[] args)
{
Task.WaitAll(GetEmail());
}
static async Task GetEmail() {
//my c# code to read gmail inbox...
}
任何帮助将不胜感激!
提前致谢
【问题讨论】:
-
听起来您在问两个不相关的问题:一个与如何进行调度有关,另一个与您在运行 WebJobs 时遇到的错误有关。请简化问题以仅涵盖一件事。我认为运行时问题是您的主要问题。
标签: c# console-application gmail-api azure-webjobs