因此我遵循http://www.daimto.com/的几个示例,即http://www.daimto.com/webmaster-tools-api-with-c/。经过漫长的一夜之后,我才得以开始工作。我这样做的方式是通过简单地移除GoogleWebAuthorizationBroker中的新FileDataStore每次都会产生一个新端口
new FileDataStore("Daimto.GoogleWebMasters.Auth.Store")
的代码更改为:
UserCredential credential = GoogleWebAuthorizationBroker(new ClientSecrets
{ ClientId = clientId, ClientSecret = clientSecret }
, scopes
, userName
, CancellationToken.None
, null).Result; // <-- notice null here
那么,真的有必要的数据存储?当我添加它时,我的IIS每次刷新都会生成一个新的端口号,这使得无法在谷歌中授权url重定向。 btw,我尝试了目录的物理完整路径,但结果相同。
在GoogleApis.Auth.DotNet4/OAuth2/LocalServerCodeReceiver中。cs,端口在GetRandomUnusedPort()中随机分配() –
谢谢DalmTo,我读了你的建议,并尝试了一个自定义的DataStore。这并没有改变随机端口问题。此外,我发现当我发布解决方案时,它会引发错误。所有这些问题都可以通过避免使用GoogleWebAuthorizationBroker解决,并使用我在已添加的答案中链接的解决方案。 –