服务总线令牌具有无效签名
Service Bus The token has an invalid signature
我正在尝试基于 this article
创建服务总线中继
我收到一般错误消息: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();
点
有人可以帮忙吗?
看来我已经解决了问题,密钥中的正斜杠没有转义
下一个问题是我现在得到以下信息但想先排除我们的防火墙
<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>
我遇到了和你第一个一样的错误。
但我的问题是我使用连接字符串作为密钥。然后我把key的最后一个参数SharedAccessKey
改了,错误解决了
我也遇到了这个错误信息,原来是和Andy Zhang一样的问题。
我删除了服务总线来测试自动部署,并且仍然在连接字符串中引用旧的 SharedAccessKey 进行连接,但是在重新部署后这已经改变了。
我们将连接字符串存储在 Key Vault 中,因此我不得不更改其中的连接字符串以解决问题。
专门针对我 在我的本地环境中 ,我对环境变量进行了更改——其中之一是服务总线连接字符串——而 Visual Studio 是打开。
Visual Studio 将在启动时缓存环境变量。
关闭 Visual Studio、重新打开并 运行 再次解决了我的问题。
我正在尝试基于 this article
创建服务总线中继我收到一般错误消息: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();
点有人可以帮忙吗?
看来我已经解决了问题,密钥中的正斜杠没有转义
下一个问题是我现在得到以下信息但想先排除我们的防火墙
<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>
我遇到了和你第一个一样的错误。
但我的问题是我使用连接字符串作为密钥。然后我把key的最后一个参数SharedAccessKey
改了,错误解决了
我也遇到了这个错误信息,原来是和Andy Zhang一样的问题。
我删除了服务总线来测试自动部署,并且仍然在连接字符串中引用旧的 SharedAccessKey 进行连接,但是在重新部署后这已经改变了。
我们将连接字符串存储在 Key Vault 中,因此我不得不更改其中的连接字符串以解决问题。
专门针对我 在我的本地环境中 ,我对环境变量进行了更改——其中之一是服务总线连接字符串——而 Visual Studio 是打开。
Visual Studio 将在启动时缓存环境变量。
关闭 Visual Studio、重新打开并 运行 再次解决了我的问题。