【问题标题】:How do I pass the AccessKey value to an Azure SignalR server in C#?如何在 C# 中将 AccessKey 值传递给 Azure SignalR 服务器?
【发布时间】:2018-06-19 14:11:02
【问题描述】:

我有 C# 代码,可以使用本地 SignalR 服务器在 WinForms 应用程序之间传递消息。

我想修改此代码以使用 Azure SignalR 服务。

我在 Azure 门户中创建了 SignalR 资源。

我有一个像这样的连接字符串

Endpoint=[此处的端点 URI];AccessKey=[此处的 guid];

所以我有一个连接字符串和一个 AccessKey。

如何从 WinForms/控制台应用程序(不是 .Net 核心网络应用程序)分配 HubConnection 并使用连接字符串或为连接分配 AccessKey?

我当前的(非 Azure)代码就是这样

var myConnection = new HubConnection(theURI);

谢谢,

亚当

【问题讨论】:

    标签: c# azure signalr


    【解决方案1】:

    当您使用 SignalR 服务时,客户端代码不会更改。连接字符串在服务器端使用(在使用 SignalR 服务时,您仍然需要有一个服务器,它承载集线器逻辑并进行身份验证)。您的客户端代码首先连接到服务器(使用相同的 API),服务器将重定向客户端以连接到服务。

    【讨论】:

    • Ken 是 Microsoft 的 Azure SignalR 服务软件工程经理。他的回答当然是正确的。我发布此评论是希望它可以节省其他人我在此问题上花费的时间。 SignalR 有两个不同的、不可互操作的版本:用于 ASP.Net(较旧)的 SignalR 和用于 .Net Core(较新)的 SignalR。 ASP.Net 版本不适用于 Azure SignalR。因此,如果您编写一个 .Net Core SignalR 客户端,是的,您无需修改​​它即可连接到 .Net Core SignalR 服务器,无论此服务器是否使用 Azure SignalR。
    • 但是,如果您编写 ASP.Net SignalR 客户端和服务器,但不知道 SignalR 的 .Net Core 版本存在,那么您尝试修改此客户端/服务器代码以使用 Azure SignalR,你会失败的。在这种情况下,您需要基于 .Net Core SignalR 编写新的客户端和服务器类,以便使用 Azure SignalR 服务。
    • 截至 2019 年 4 月,Asp.net 现在支持 Azure SignalR,如下所述:devblogs.microsoft.com/aspnet/…
    猜你喜欢
    • 1970-01-01
    • 2013-01-12
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多