在ASP.Net MVC 5項目的根目錄中創建SignalR 2 Hub類完全正常。您可以訪問〜/ signalr/hubs url並返回代理。你也可以把這個類放在一個名爲Hubs的文件夾或類似的文件夾中,它仍然可以正常工作。只要你把全班學生分成App_Code文件特別ASP.Net文件夾,然後您會收到以下錯誤:App_Code中的SignalR Hub會導致「兩個集線器不能共享相同的名稱」錯誤
Exception Details: System.InvalidOperationException: Two Hubs must not share the same name. 'SignalR_MVC.EchoHub, SignalRQuickTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' and 'SignalR_MVC.EchoHub, App_Code.gjrzytie, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' both share the name 'echo'.
在一個側面說明,從Compile
設置類Build Action
到Content
導致錯誤走開,一切正常。我已閱讀App_Code
文件夾中的所有文檔,但沒有提及有關創建2個dll(這是發生在這裏的事情)的任何內容,儘管發佈該應用程序只創建1個dll,並且在部署到IIS時它們都工作正常。
我發現了這個錯誤報告:Two Hubs must not share the same name,但是這個人從未跟蹤過,他們關閉了這個錯誤。我也發現這個SO帖子An unhandled exception : Two Hubs must not share the same name,但雖然看起來很相似,但從我所知道的情況來看,它並不相同。我找不到其他任何東西,甚至模糊不清,所以我希望有人知道SignalR/App_Code將能夠揭示這種情況,並可能分享他們的「最佳實踐」建議。
遇到同樣的問題,但更糟糕的方式。我使用的是.net 4 vs 2010的signalr 1.2.2。使用fiddler在6小時後發現了錯誤,然後再現了它。發生在ReflectedHubDescriptorProvider類,第44行(BuildHubsCache方法)。 –
感謝您的評論,設法找到答案!讓我知道如果有幫助 – Storm