0
我遇到了一个问题,我可以在作为控制台应用程序运行时进行身份验证。但是,当我使它成为Windows服务并安装它时,我无法进行身份验证。我使用了日志调试语句来隔离问题。C#Google API身份验证
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets {
ClientId = "myClientId",
ClientSecret = "myClientSecret"
},
new[] {
CalendarService.Scope.Calendar
},
"myProjectName",
CancellationToken.None,
new FileDataStore("myProjectName")
).Result;
问题出在上述说法。这被try/catch包围,但没有抛出异常。在此之后立即有一个日志语句,但它永远不会执行。我最好的猜测是问题出在FileDataStore上。默认情况下,Google存储的是%AppData%,当我手动运行它时,我的程序可以找到它,但是当它是Web服务时,我不得不给它一个类似本地系统或本地服务的帐户类型,我需要将其设置为用户I认为。我的猜测是,这可以防止它找到%AppData%中的文件。有没有人有任何建议如何帮助Windows服务找到%AppData%?或者在这种情况下Windows服务是一种糟糕的方法?
非常感谢您的帮助。