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

时间:2014-03-17 07:32:32

标签: c# .net asp.net-mvc azure signalr

我创建了asp.net mvc 5应用程序(称之为" WebServices"),然后我将我的Hub添加到一个名为" Hubs"的文件夹中。 现在发生的事情是SignalR(2.0.2)为环境中的集线器生成JavaScript代理: 1-in本地机器。 2 - 当我发布到azure web角色时。 现在,当我发布到azure网站(.NET是4.5并打开websocket)时,它没有生成代理。 现在我尝试将集线器添加到App_Code文件夹,并生成代理,但集线器类的构建操作是"内容",当我将其更改为Compile时,它引发了此异常:

  

两个集线器不得共享相同的名称。 ' Webservices.App_Code.MyHub1,   App_Code.c9aucf2j,Version = 0.0.0.0,Culture = neutral,   公钥=空'和' Webservices.App_Code.MyHub1,Webservices,   Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'两人分享   姓名' MyHub1'。

感谢名单

3 个答案:

答案 0 :(得分:1)

可能你不小心加载了一个旧的dll(或者更好的框架为你发现了一个),它也包含一个同名的集线器。在我的情况下,框架加载

MyHubsTest.dll (with myHub in it)
MyHubsTest.exe (with myHub in it)

您可以在Debug - >中查看它。 Windows - >模块

答案 1 :(得分:0)

我也有这个问题。我正在使用ASP.NET 5,MVC6和SignalR 2.2。为此,我正在使用此处详述的BuilderExtensions类:

https://code.msdn.microsoft.com/The-ASPNET-vNext-Real-Time-b1d27fe4

在一个LONG调试会话之后,最终做的就是我的Startup.cs中的这一部分:

services.AddIdentity<ChirpUser, IdentityRole>(config =>
{
    config.User.AllowedUserNameCharacters = Properties.Resource.AllowedUsernameCharacters;
})
.AddEntityFrameworkStores<ChirpContext>();

ChirpUser是我的User类的名称,而ChirpContext是我的DbContext类,但说实话,我认为这不是重要的一点。

问题行是对Properties.Resources的调用。我在那里定义了一个允许用户名字符串,但是当包含这一行时,我有你描述的错误。当我把这条线拿出来时,问题就消失了。

我对此没有很好的解释,但也许它适合你的情况。

答案 2 :(得分:0)

对我来说,我已将代码转换为Web应用程序,需要将集线器类移出app_code文件夹。

SignalR创建它自己的虚拟SignalR / Hubs文件夹。也许尝试将您的Hubs文件夹重命名为_Code