服务总线:令牌签名无效。

14

我试图基于这篇文章创建一个服务总线中继。

但是我收到了错误消息: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() 的位置出现了错误信息。

有人能帮忙吗?

4个回答

7
我也遇到了这个错误消息,结果发现是和Andy Zhang遇到的同一个问题。我删除了服务总线以测试自动部署,并且仍在引用旧的SharedAccessKey来连接,但是在重新部署后已经更改了这个密钥。
我们将连接字符串存储在Key Vault中,因此我不得不更改里面的连接字符串以解决这个问题。

3
我遇到了与你第一个相同的错误。
但我的问题是我使用连接字符串作为密钥。然后,我更改了最后一个参数SharedAccessKey的密钥,错误得到了解决。

18
可以,请问您能否解释一下我所做的修改? - Shajeer Puzhakkal

0

就我个人而言,我在本地环境中更改了环境变量,其中一个是服务总线连接字符串,而 Visual Studio 仍然处于打开状态。

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

关闭 Visual Studio,重新打开并再次运行即可解决问题。


-6

看起来我解决了问题,键中的斜杠未被转义

下一个问题是我现在遇到了以下问题,但首先要排除我们的防火墙

<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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接