我遇到一个奇怪的问题,试图让MVC5应用程序在部署时使用Google Mirror API(或任何谷歌API)。
这是我努力工作的代码:
UserCredential credentials = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "my_client_id",
ClientSecret = "my_client_Secret"
},
new[] { MirrorService.Scope.GlassTimeline },
"username",
CancellationToken.None,
new GlassDataStore()
).Result;
当我从Visual Studio 2013本地运行时,一切都运行良好 - 上面的代码运行和验证,持续存储到数据库,我可以继续正常发送卡等。
每当我将其部署到“真实”服务器时(主要是为了让Subscriptions工作),它只会在执行上述代码时永远挂起。我已经设置了远程调试,并且可以看到代码确实在没有异常的情况下运行,但似乎只是在之后立即停止。
在浏览器中,页面只是在调用此代码后加载(在这种情况下从一个按钮)并且w3p.exe开始吃内存(相当缓慢,但它是一个向上的趋势..)
整个周末都让我感到沮丧 - 我已经尝试了很多解决方案,包括使用GoogleWebAuthorizationBroker的内核实现代码,因为它实际上只是一个帮助类,但我看到完全相同的结果。
我尝试部署到两个不同的服务器,并检查web.configs每次都是相同的。
有什么建议吗?我希望这是一个非常简单的东西,我已经错过了,并且是一个配置问题......它可以在本地工作。
谢谢!
编辑:阅读周围似乎使用WebAuthorizationBroker可能不是在MVC中执行此操作的最佳方式 - 我应该使用GoogleAuthorizationCodeFlows手动执行..我会在早上尝试,但仍然 - 使用代理工作在VS2013中运行的MVC5网站上很好,所以我很难过!
答案 0 :(得分:0)
我现在正在关闭这个问题 - 最终的答案是使用GoogleAuthorizationCodeFlows来正确完成,现在一切正常:)
我不再支持我在问题中描述的方法。