2017-01-03 8 views
0

Я создал консольное приложение для чтения gmail inbox. Мне нужно, чтобы мое консольное приложение читало электронные письма каждые 15 минут. Так я опубликовал консольное приложение как webjobs с runmode: «По запросу» и опубликовал приложение, использующее azure services (веб-приложения).Azure webjobs failed [Доступ запрещен]

Но мои webjobs, кажется, не запускаются, и нет возможности запланировать веб-сайт, когда я выбираю публикацию в качестве лазурного webjobs.

Как только я опубликовать я получаю эту ошибку в визуальной студии:

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

webjob не запланированное времени, поэтому я вручную запускал 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] Запустите скрипт «ICICIEmailParser.exe» с хостом сценария - «WindowsScriptHost» [01/03/2017 06:48:39> 7e6d88: SYS INFO] Статус изменен на Запуск [01/03/2017 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.Mo veNext() [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.CompilerServ ices.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] at System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification) [01/03/2017 06:48:40 > 7e6d88: ERR ] at System.Threading.Tasks.Task 1.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] at System.Threading.Tasks.Task.WaitAll (Task [] tasks, Int32 millisecondsTimeout, CancellationToken cancelationToken) [01/03/2017 06:48:40> 7e6d88: ERR] в GmailQuickstart.Program.Main (String [] args) [01/03/2017 06:48:40> 7e6d88: SYS INFO] Статус изменен на Failed [01/03/2017 06:48:40> 7e6d88: SYS ERR] Не удалось выполнить работу из-за кода выхода -532462766

вещи я сделал:

у меня есть клиент-secret.json файл GOOG le oauth. Я добавил Google тайну и идентификатор клиента в моем лазурного веб-приложения аутентификации/авторизации Я установил яваскрипта происхождение и перенаправлять URI в Google консоли разработчика

Это мой основной метод:

static void Main(string[] args) 
    { 

     Task.WaitAll(GetEmail()); 


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

} 

Любая помощь будет оценил!

Заранее спасибо

+0

Возможный дубликат [Azure WebJob сбой при выходе кода 532462766] (http://stackoverflow.com/questions/39648501/azure-webjob-fails-on-exit-code-532462766) – DaImTo

+0

Похоже, вы спрашиваете двух несвязанные вопросы: один связан с тем, как выполнять планирование, а другой связан с ошибкой, возникающей при запуске WebJobs. Пожалуйста, упростите вопрос только для одного. Я предполагаю, что проблема времени выполнения - это ваш основной вопрос. –

ответ

0

необработанное исключение: System.AggregateException: Произошла одна или несколько ошибок. ---> System.Net.HttpListenerException: Доступ запрещен

По вашему описанию, я предположил, что вы следовали .NET Quickstart для создания .NET консольного приложения, которое делает запросы к API Gmail. Я выполнил вышеупомянутый учебник и развернул его как Azure WebJobs, после чего я смог воспроизвести эту ошибку. При запуске приложения командной строки (WebJob) на Azure вам будет предложено авторизировать доступ и открыть новое окно или вкладку в браузере по умолчанию веб-сервера по умолчанию. Однако Azure WebJobs работают в качестве фоновой задачи под сайтом, размещенным на Azure, для выполнения обычных заданий и пакетной работы, конечные пользователи не могут взаимодействовать с вашим WebJob, чтобы завершить авторизацию.

Но мои webjobs не работают, и нет возможности запланировать веб-сайт, когда я выбираю публикацию в качестве лазурного webjobs.

Как я знал, вы могли бы использовать следующие подходы запланировать WebJob:

Я добавил Google тайну и идентификатор клиента в моем лазурного веб-приложения аутентификации/авторизации Я установил яваскрипта происхождение и перенаправить URI в Google Developer консоли

За мое понимание, вы пытаетесь проверить подлинность/авторизуйте свое веб-приложение с учетной записью Google и планируйте WebJob читать сообщения из Gmail с зарегистрированным пользователем UserCredential.Как я знал, WebJobs не мог напрямую общаться с вашим веб-приложением, я предположил, что вам нужно сохранить зарегистрированный UserCredential и запланировать веб-сайт, чтобы получить UserCredential для чтения сообщений из API Gmail.

+0

Спасибо за ваши ответы. Мне как-то удалось запустить webjob.Here - это то, что я сделал. Я использовал сервер для сервера oauth из gmail api, чтобы не требовалось взаимодействие с пользователем. Они предоставили мне закрытый ключ, который я использовал для получения токен google затем читает письмо. При развертывании я только что развернул папку выпуска на удаленном компьютере (не лазурь). Из удаленного компьютера, когда я запускаю свою exe, моя программа успешно работала. Надеюсь, это поможет кому-то, кто пытается достичь того же , – Melvin

+0

Не могли бы вы разместить свое решение с более подробной информацией и пометить его как ответ для другого сообщества, которое может столкнуться с подобной проблемой? –