ASP.NET MVC5 Google API GoogleWebAuthorizationBroker.AuthorizeAsync在本地工作但未部署到IIS

时间:2014-08-03 22:53:46

标签: c# asp.net asp.net-mvc iis google-glass

我遇到一个奇怪的问题,试图让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网站上很好,所以我很难过!

1 个答案:

答案 0 :(得分:0)

我现在正在关闭这个问题 - 最终的答案是使用GoogleAuthorizationCodeFlows来正确完成,现在一切正常:)

我不再支持我在问题中描述的方法。