我正在开发将消息从C#console应用程序发送到Azure Event Hub的程序。代码参考链接如下:
参考链接:https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-dotnet-standard-getstarted-send
在上面的代码中我得到异常,因为:放置令牌失败。状态代码:401:过期令牌。我试图重新生成主键和辅助键。以下是连接字符串和实体路径值的格式,如下所示:
请提供解决方案。谢谢。
答案 0 :(得分:2)
以下可能是一个非常具体的场景。
如果您在 Windows 中使用 Docker 运行您的应用程序时遇到此问题,并且 Docker 通过 WSL 2(而不是 HyperV)运行,则 Microsoft 仍需要解决 WSL 2 问题:
这是主机操作系统和正在运行的容器之间的时间同步问题。它们基本上具有不同的日期/时间,这在通过过期令牌进行身份验证时会产生问题。
这是在我的笔记本电脑在睡眠/休眠后醒来时发生的。我使用 Docker 容器运行我的应用程序。当它尝试连接到服务总线时,我开始收到那些未经授权的错误,但只是在睡眠模式之后,而不是之前。
有人说它通过重新启动 docker 主机解决了。在我的情况下,它只能重新启动我的电脑。过了一会儿我发现:
https://github.com/microsoft/WSL/issues/4245
现在我不再需要重新启动 Windows,只需运行
wsl --shutdown
修复了强制操作系统/容器之间时间同步的问题(这也会导致 docker 主机重启)。
答案 1 :(得分:1)
我希望现在还为时不晚!
我有同样的问题,我的问题是,我已经从连接到事件中心的设备更改了系统时间。我把它从7点设置到4点钟。
答案 2 :(得分:1)
在Windows的docker内部运行时,我只是遇到了同样的情况。我重新启动了Docker主机,并且可以正常工作-不知道为什么