【问题标题】:Event Hub Error: Put token failed. status-code: 401, status-description: ExpiredToken事件中心错误:放置令牌失败。状态码:401,状态描述:ExpiredToken
【发布时间】:2017-04-11 13:36:56
【问题描述】:

我正在开发将消息从 C# 控制台应用程序发送到 Azure 事件中心的程序。代码参考链接如下:

参考链接:https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-dotnet-standard-getstarted-send

在上面的代码中,我收到异常:Put token failed。状态码:401:过期令牌。我试图重新生成主键和辅助键。下面是连接字符串和实体路径值的格式如下:

请提供解决方案。谢谢。

【问题讨论】:

    标签: c# azure


    【解决方案1】:

    希望还不算太晚!

    我遇到了同样的问题,我的问题是,我从连接到事件中心的设备更改了系统时间。我把它设置为从 7 点到 4 点。

    【讨论】:

    • 我知道这是我的问题。我以前也有过,不过好像还可以。我需要以某种方式刷新令牌。
    • 这解决了我的问题!早上开机进入Linux,显然改变了系统时间。
    【解决方案2】:

    以下可能是一个非常具体的场景。

    如果您在 Windows 中使用 Docker 运行应用程序时遇到此问题,并且 Docker 是通过 WSL 2(而不是 HyperV)运行的,那么 Microsoft 仍然需要解决 WSL 2 问题:

    这是主机操作系统和正在运行的容器之间的时间同步问题。它们基本上具有不同的日期/时间,并且在通过过期令牌进行身份验证时会产生麻烦。

    这发生在我的笔记本电脑在睡眠/休眠后醒来时。我使用 Docker 容器运行我的应用程序。当它尝试连接到服务总线时,我开始收到那些未经授权的错误,但只是在睡眠模式之后,而不是之前。

    有人说通过重启 docker 主机解决了。就我而言,它只适用于重新启动我的电脑。过了一会儿我发现:

    https://github.com/microsoft/WSL/issues/4245

    现在我不再需要重新启动 Windows,只需运行即可

    wsl --shutdown
    

    修复了在操作系统/容器之间强制时间同步的问题(它也会导致 docker 主机重启)。

    【讨论】:

      【解决方案3】:

      我在 docker for windows 中运行时也遇到了同样的情况。我重新启动了 docker 主机并且它工作了 - 不知道为什么

      【讨论】:

      • 同样的问题,使用 WSL2,必须重新启动 Windows - Docker 重新启动没有修复容器内的日期/时间
      猜你喜欢
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      • 2020-03-24
      • 2020-12-01
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多