我使用GoogleWebAuthorizationBroker.AuthorizeAsync()为GoogleDrive授权用户。
它适用于控制台或UI应用程序,但如果该方法在Windows服务的上下文中执行,即使我之前在控制台模式下被授权并且JSON数据存储在提供的FileDataStore中,它也会挂起。
我的代码如下:
ClientSecrets secrets = new ClientSecrets { ClientId = CLIENT_ID, ClientSecret = CLIENT_SECRET };
FileDataStore store = new FileDataStore("MyFolder");
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
secrets,
new string[] {
DriveService.Scope.DriveFile,
DriveService.Scope.Drive,
"user",
CancellationToken.None,
store).Result;
这种方法根本不能在Windows服务下运行,或者我遗漏了什么?
是否有另一种方法可以在Windows服务下授权用户? (对于这种情况,我对ServiceAccountCredential不感兴趣。)
提前致谢。
答案 0 :(得分:1)
试试这个:打开服务。转到您的服务上的属性。在“登录”选项卡下,选中“#34;允许服务与桌面交互"。
这是任何服务都需要做任何与UI相关的事情。