Windows.net Google.Apis зависает при вызове InsertMediaUpload.Upload - нет таймаута

Я использую GoogleApis для загрузки документов на Google Диск с помощью класса InsertMediaUpload из пространства имен FilesResource и метода загрузки. Это хорошо работает для меня со следующим исключением:

После вызова InsertMediaUpload появляется окно браузера с просьбой войти в свою учетную запись Google (обычно Gmail). Если пользователь просто закрывает окно браузера, а не нажимает "Принять" или "Отменить", тогда текущий процесс, кажется, висит. Я полагаю, что время ожидания должно составлять минуту или две, так что если пользователь откажется от входа в текущее приложение Windows, он не будет просто зависать и перестать работать на неопределенный срок.

Здесь нет необходимости в образце кода. Что должно произойти, когда пользователь просто закрывает окно браузера вместо нажатия на отмену, если они больше не заинтересованы в загрузке документа? Сбой (или зависание) текущего процесса не должен быть возможным, но это то, что происходит. Можно было бы надеяться, что закрытие окна браузера будет иметь тот же эффект, что и нажатие кнопки отмены - просто еще один способ отказаться от загрузки на Google Диск, так?

Заранее спасибо за любую помощь в этом.

1 ответ

Вы не должны получать сообщение об аутентификации из класса InsertMediaUpload. Вы должны самостоятельно обрабатывать аутентификацию. Окно браузера аутентификации, которое вы получаете, предназначено для вашего удобства, а не для производственного кода. Пожалуйста, взгляните на .net quickstart. В этом GetAuthorization вы увидите метод GetAuthorization который обрабатывает аутентификацию. Измените этот метод по вашим потребностям, и вы получите то, что хотите.

licensed under cc by-sa 3.0 with attribution.