SignarlR 两个集线器不得共享相同的名称

SignarlR Two Hubs must not share the same name

我们正在开发一个以 SigalR 库为核心的服务器应用程序。 当我尝试获取当前服务器上下文时,出现以下错误。有谁知道这个错误的原因吗?谢谢。

1) 它不是 MVC 应用程序,它是控制台应用程序。

2) 我们不使用 App_Start 或 App_Code 文件夹。

控制台应用程序内部的启动 class。:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.UseCors(CorsOptions.AllowAll);
        app.MapSignalR();
    }
}

这是我的构造函数,它位于 class 库中。服务器自行启动。

public ServerBase()
{
    serverURI = ConfigurationManager.AppSettings["ServerURI"];
    StartServer();
    serverContext = GlobalHost.ConnectionManager.GetHubContext<ServerBase>();
}

错误消息:

Two Hubs must not share the same name. 'Core.MessageTransmitter.ServerBase, Core.MessageTransmitter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' and 'Core.MessageTransmitter.ServerBase, Core.MessageTransmitter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' both share the name 'ServerBase'.

堆栈跟踪:

at Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider.BuildHubsCache() at System.Lazy1.CreateValue() at System.Lazy1.LazyInitValue()
at System.Lazy1.get_Value() at Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider.TryGetHub(String hubName, HubDescriptor& descriptor) at Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.<>c__DisplayClass1.<GetHub>b__0(IHubDescriptorProvider p) at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable1 source, Func`2 predicate) at Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.GetHub(String hubName) at Microsoft.AspNet.SignalR.Hubs.HubManagerExtensions.EnsureHub(IHubManager hubManager, String hubName, IPerformanceCounter[] counters) at Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext(String hubName) at Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContextT at Core.MessageTransmitter.ServerBase..ctor() in C:\ReklamUssuProjects\MenuBoard-DevBranch\ReklamUssu.Core\Core.MessageTransmitter\ServerBase.cs:line 28 at Core.MessageTransmitter.ServerBase..ctor(Logger logger) in C:\ReklamUssuProjects\MenuBoard-DevBranch\ReklamUssu.Core\Core.MessageTransmitter\ServerBase.cs:line 30 at Core.ContextManager.ServerContext.Initialize(String name, Type messageBroker, String serviceAddress, String metaDataAddress) in C:\ReklamUssuProjects\MenuBoard-DevBranch\ReklamUssu.Core\Core.Context\ServerContext.cs:line 22 at CallSite.Target(Closure , CallSite , ServerContext , String , Type , Object , Object ) at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid5[T0,T1,T2,T3,T4](CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) at MenuBoard.AppHostConsole.Program.Main(String[] args) in C:\ReklamUssuProjects\MenuBoard-DevBranch\ReklamUssu.MenuBoard\MenuBoard.AppHostConsole\Program.cs:line 29

问题出在欧文身上。我们有 2 个应用程序。第一个是 WCF 服务器,第二个是 SignalR 服务。当我们先启动SignalR服务时,是没有问题的。我们就这样解决了这个问题。我认为这些服务器之间有一个交点。