Azure Web作业失败[访问被拒绝]



我创建了一个控制台应用程序来读取gmail收件箱。我需要我的控制台应用程序每15分钟阅读一次电子邮件。因此,我将控制台应用程序发布为运行模式为"按需"的网络作业,并使用azure服务(网络应用程序)发布该应用程序。

但我的网络作业似乎没有运行,当我选择发布为azure网络作业时,也没有安排网络作业的选项。

我一发布就在visual studio中收到这个错误:

'ICICIEmailParser.sstageEntities-Web.config Connection String' argument cannot be null or empty

网络作业没有计划的时间,所以我从azure门户手动运行网络作业,当查看日志时,我看到下面的错误

[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]状态更改为正在运行【2017年3月1日06:48:40>7e6d88:ERR】[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.SthrowIfExceptional(布尔值包括TaskCanceledExceptions)[01/03/2017 06:48:40>7e6d88:ERR],位于System.Threading.Task.Task1.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(Task[]任务,Int32毫秒超时,CancellationToken取消令牌)[01/03/2017 06:48:40>7e6d88:ERR]在GmailQuickstart.Program.Main(String[]args)[01/03/2017 06:48:40>7e6d88:SYS INFO]状态更改为Failed[01/2017 06:48:40>7e6d88:SYS ERR]由于退出代码-532462766 ,作业失败

我所做的事情:

我有一个谷歌oauth的client-securt.json文件。我已经在我的azure web应用程序身份验证/授权中添加了谷歌秘密和客户端id我在谷歌开发者控制台中设置了javascript来源和重定向uri

这是我的主要方法:

static void Main(string[] args)
{
Task.WaitAll(GetEmail());

}
static async Task GetEmail() {
//my c# code to read gmail inbox...
}

任何帮助都将不胜感激!

提前感谢

未处理的异常:系统。AggregateException:出现一个或多个错误。--->系统网HttpListenerException:访问被拒绝

根据你的描述,我认为你已经跟上了。NET Quickstart创建您的。NET控制台应用程序,向Gmail API发出请求。我遵循了上面的教程,并将其部署为Azure WebJobs,然后我可以重现这个错误。在Azure上运行命令行应用程序(WebJob)时,它会提示您授权访问,并在web服务器的默认浏览器中打开新窗口或选项卡。然而,Azure WebJob作为后台任务在Azure上托管的网站下进行常规工作和批处理工作,最终用户无法与您的WebJob交互以完成授权。

但我的网络作业似乎没有运行,当我选择发布为azure网络作业时,也没有计划网络作业的选项。

正如我所知,您可以利用以下方法来安排您的WebJob:

  • 使用Azure WebJobs SDK扩展中的TimerTrigger

  • 使用Azure计划程序作业通过一些计划触发您的WebJob

  • 使用cron表达式调度Azure WebJobs

我在我的azure web应用程序身份验证/授权中添加了谷歌机密和客户端id我在谷歌开发者控制台中设置了javascript来源和重定向uri

据我所知,您正试图使用谷歌帐户验证/授权您的网络应用程序,并安排WebJob使用记录的UserCredential从Gmail读取消息。正如我所知,WebJobs无法直接与您的网络应用程序通信,我假设您需要存储记录的UserCredential,并安排您的网络作业检索UserCredentity以从Gmail API读取消息。

最新更新