服务总线令牌具有无效签名

本文关键字:无效 总线 令牌 服务 | 更新日期: 2023-09-27 18:21:28

我正在尝试基于本文创建一个服务总线中继

我收到错误消息Generic:InvalidSignature:令牌具有无效签名。

static void Main(string[] args)
{
        ServiceHost sh = new ServiceHost(typeof(ProblemSolver));
        sh.AddServiceEndpoint(
           typeof(IProblemSolver), new NetTcpBinding(),
           "net.tcp://tjservicebus.servicebus.windows.net/solver");
        Console.WriteLine("Add Binding End Point");
        var key = "MYKEY";
        sh.AddServiceEndpoint(
           typeof(IProblemSolver), new NetTcpRelayBinding(),
           ServiceBusEnvironment.CreateServiceUri("sb", "tjservicebus", "solver"))
            .Behaviors.Add(new TransportClientEndpointBehavior
            {
                TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider("RootManageSharedAccessKey", key)
            });
        sh.Open();
        Console.WriteLine("Press ENTER to close");
        Console.ReadLine();
        sh.Close();
    }

错误消息出现在sh.Open();

有人能帮忙吗?

服务总线令牌具有无效签名

我也收到了这个错误消息,结果发现它和张是同一个问题。

我删除了服务总线以测试自动部署,并且仍然在连接字符串中引用旧的SharedAccessKey进行连接,但在重新部署后,情况发生了变化。

我们将连接字符串存储在密钥库中,因此我不得不更改其中的连接字符串以解决问题。

我遇到了与第一个错误相同的错误。

但我的问题是我使用了连接字符串作为密钥。然后,我更改了密钥的最后一个参数SharedAccessKey,错误已经解决。

特别是在我的本地环境中,我在Visual Studio打开时对环境变量进行了更改,其中一个是服务总线连接字符串。

Visual Studio将在启动时缓存环境变量。

关闭Visual Studio,重新打开并再次运行解决了我的问题。

看起来我已经对问题进行了排序,密钥中的正斜杠没有逃脱

下一个问题是我现在得到了以下内容,但想排除我们的防火墙第一

<Error>
  <Code>400</Code>
    <Detail>
      Cannot send message because the service endpoint hosted at the specified address uses a binding that cannot be accessed over HTTP. TrackingId:7e6402e1-a250-482b-967e-a4d1860bca54_G37,TimeStamp:11/12/2015 9:09:15 AM
    </Detail>
</Error>