【问题标题】:Youtube API v3 OAuth2 handshake error "connection failed" on Windows serverWindows 服务器上的 Youtube API v3 OAuth2 握手错误“连接失败”
【发布时间】:2016-06-20 19:34:54
【问题描述】:

我们希望将 Youtube v3 API 与 ASP.NET 4.5/C# 结合使用,通过控制台应用程序将视频上​​传到特定的 youtube 频道。编译是在 Windows 7 Professional Development 机器上的 Visual Studio 2015 中完成的。

因此我们在 Google Developer Console 中创建了 OAuth2 凭据,并使用以下代码进行 OAuth2 授权握手

        using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
        {
            GoogleAuthorizationCodeFlow.Initializer initializer = new GoogleAuthorizationCodeFlow.Initializer
            {
                ClientSecrets = GoogleClientSecrets.Load(stream).Secrets,
                DataStore = new FileDataStore(GoogleWebAuthorizationBroker.Folder)
            };

            credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                initializer,

                new[] { YouTubeService.Scope.Youtube },
                user,
                CancellationToken.None
            );
        }

到目前为止一切正常。如果之前没有进行授权,则会打开一个浏览器窗口 (access_type=offline&response_type=code),我们可以在其中登录我们的 Youtube 帐户,选择一个频道,授予必要的访问权限,然后返回浏览器页面 localhost:portnumber/authorize?code=XYZ 写着“收到验证码。您可以关闭此窗口”,我们的控制台应用程序继续工作。这是我们开发机器上的工作流程。

但是,当我们将应用程序复制到 Windows Server 2012 时,会发生错误。浏览器窗口也打开了,我们可以登录并授予访问权限,但最终浏览器页面 localhost:portnumber/authorize?code=XYZ 无法加载,并显示特定于浏览器的“connection failed ”错误页面。

似乎没有进程附加到(随机?)端口号来读取接收到的代码信息、检索令牌并将其写入 %AppData%/Google.Apis.Auth。防火墙不会阻止任何东西。

我们的第一个猜测是名称解析问题。默认情况下,localhost 在 Windows 服务器上被解析为 ::1。不幸的是,当我们将 IPv4 分辨率强制为 127.0.0.1 时,它仍然不起作用

感谢您的每一个建议。

【问题讨论】:

    标签: c# asp.net google-data-api youtube-data-api oauth2


    【解决方案1】:

    好的,我找到了解决办法。

    我们已经将 IIS8 绑定到一个特定的 IP 地址,不包括 127.0.0.1。

    在我们通过netsh http add iplisten添加本地IP地址后,webserver能够再次绑定到localhost socket,进行一次基于代码的授权。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-10
      • 2021-03-08
      • 2021-02-02
      • 2018-03-05
      • 1970-01-01
      • 2015-01-04
      • 2022-08-16
      • 2016-05-02
      相关资源
      最近更新 更多