SignarlR Two Hubs不得共享相同的名称

时间:2017-10-05 07:54:40

标签: c# signalr signalr-hub

我们正在开发一个在核心使用SigalR库的服务器应用程序。 当我尝试获取当前服务器上下文时,我在下面收到此错误。有没有人知道这个错误的原因?谢谢。

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

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

控制台应用内的启动类。

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

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

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

的ErrorMessage:

  

两个集线器不得共享相同的名称。   'Core.MessageTransmitter.ServerBase,Core.MessageTransmitter,   Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'和   'Core.MessageTransmitter.ServerBase,Core.MessageTransmitter,   Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'都共享   名为'ServerBase'。

堆栈跟踪:

  

在   Microsoft.AspNet.SignalR.Hubs.ReflectedHubDescriptorProvider.BuildHubsCache()   在System.Lazy 1.CreateValue() at System.Lazy 1.LazyInitValue()
  在System.Lazy 1.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](IEnumerable 1   来源,Func`2谓词)at   Microsoft.AspNet.SignalR.Hubs.DefaultHubManager.GetHub(String hubName)   在   Microsoft.AspNet.SignalR.Hubs.HubManagerExtensions.EnsureHub(IHubManager   hubManager,String hubName,IPerformanceCounter [] counter)at   Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContext(字符串   hubName)at   Microsoft.AspNet.SignalR.Infrastructure.ConnectionManager.GetHubContextT   在Core.MessageTransmitter.ServerBase..ctor()中   C:\ ReklamUssuProjects \ MenuBoard-DevBranch \ ReklamUssu.Core \ Core.MessageTransmitter \ ServerBase.cs:行   28在Core.MessageTransmitter.ServerBase..ctor(Logger logger)中   C:\ ReklamUssuProjects \ MenuBoard-DevBranch \ ReklamUssu.Core \ Core.MessageTransmitter \ ServerBase.cs:行   30在Core.ContextManager.ServerContext.Initialize(String name,   输入messageBroker,String serviceAddress,String metaDataAddress)   C:\ ReklamUssuProjects \ MenuBoard-DevBranch \ ReklamUssu.Core \ Core.Context \ ServerContext.cs:行   22在CallSite.Target(Closure,CallSite,ServerContext,String,   类型,对象,对象)at   System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid5 [T0,T1,T2,T3,T4](调用点   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:行   29

1 个答案:

答案 0 :(得分:0)

问题在于Owin。我们有2个申请。第一个是WCF服务器,第二个是SignalR服务。当我们首先启动SignalR服务时,没有问题。我们就是这样解决了问题的。我认为这些服务器之间存在交叉点。