信号集线器在单独的dll中

我有一个中心托管在一个控制台应用程序与WPF应用程序连接到它。 它工作得很好。 然后我将集线器移到一个单独的项目中,并将主机的引用添加到新项目中。 现在我得到一个500错误,没有其他细节。

为了从另一个汇编/命名空间托管集线器,是否还有其他需要完成的工作?

编辑:我打开这个问题后试了几件事。 这是我迄今为止所尝试的:

  • 设置HubName属性。 - 不工作。
  • 将完整的名称空间+类传递给HubConnection.CreateHubProxy。 - 不工作。
  • 将我的集线器类放入同一个项目中,但使用不同的名称空间。 - 这工作。
  • 这是传回的异常。 “System.Net.WebException:远程服务器返回一个错误:(500)Internal.Error。在System.Threading.Tasks.TaskFactory中的b_0(IAsyncResult ar) 1.FromAsyncCoreLogic(IAsyncResult iar, Func 2 endFunction,Action 1 endAction, Task 1 promise,Boolean requiresSynchronization)“


    这对我来说(启动时)

    AppDomain.CurrentDomain.Load(typeof(MyHub).Assembly.FullName);
    

    在引用的项目中映射中心的积分


    尝试查看http响应消息

            try
            {
                hubConnection.Start().Wait();
            }
            catch (Exception error)
            {
                if (error.InnerException is WebException)
                {
                    WebException webError = (WebException)error.InnerException;
                    Console.WriteLine(webError.Status);
                    Console.WriteLine(webError.Response);
                }
            }
    

    你有没有移动你的电话注册你的中心到新的DLL? 即以下需要在您的新项目(但仍然从global.asax调用):

    RouteTable.Routes.MapHubs();
    

    您可能还需要在新的RegisterHubs类中使用[WebActivator PreApplicationStart属性](http://msdn.microsoft.com/zh-cn/library/system.web.preapplicationstartmethodattribute.aspx),以确保它在时间上注册

    链接地址: http://www.djcxy.com/p/96171.html

    上一篇: Signalr Hub in Separate Dll

    下一篇: Hint a single value for a Sudoku puzzle