代码(.NET Core 2.0控制台应用程序)
UserCredential credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = yourAppClientID,
ClientSecret = yourAppClientSecret,
},
scopes,
"user",
CancellationToken.None);
有时会挂起一段时间,然后在20秒左右的时间内崩溃,并与Google.Apis.Auth.OAuth2.LocalServerCodeReceiver.LimitedLocalhostHttpServer.ServerException:“网络流读取请求行意外结束。”
大约30-50%的情况会发生这种情况。我只是一次又一次地运行该应用程序。有时会崩溃,有时会起作用。
我还发现,这似乎与该方法必须处理的数据量有关。我目前在范围内有此
{“ https://mail.google.com/”,“ https://www.googleapis.com/auth/userinfo.email”,“” https://www.googleapis.com/auth/userinfo.profile“}
如果我只要求这个,它永远不会超时:
此外,它不会与另一组较短的ClientId / Secret挂起。
此ClientID太长,可能会引起问题(或者可能不会,您永远不知道): XXXXXXXXXXXXX-irs73ni0v0kvqpibnop20uai3kar8geu.apps.googleusercontent.com
尽管这是完全可以的(即使要求了所有范围): XXXXXXXXXXXXX.apps.googleusercontent.com
看起来如果有效载荷超过一定限制或类似限制可能会挂起/崩溃。
我正在使用的Google.Apis.Auth是最新版本1.40.0。
有什么我可以克服的吗?