【问题标题】:Signalr Hub in Separate Dll单独 Dll 中的 Signalr Hub
【发布时间】:2015-05-14 09:14:57
【问题描述】:

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

为了从另一个组装/命名空间托管集线器,需要做些什么不同的事情吗?

编辑: 打开问题后,我尝试了一些事情。到目前为止,这是我尝试过的:

  • 设置 HubName 属性。 - 没用。
  • 将完整的命名空间 + 类传递到 HubConnection.CreateHubProxy。 - 不工作。
  • 将我的中心类放入同一个项目但不同的命名空间。 - 这行得通。

这是被传回的异常。 “System.Net.WebException:远程服务器返回错误:(500)内部服务器错误。 在 System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 在 Microsoft.AspNet.SignalR.Client.Http.HttpHelper.c_DisplayClass2.b_0(IAsyncResult ar) 在 System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization)"

【问题讨论】:

    标签: signalr signalr-hub


    【解决方案1】:

    这对我有用(在启动时)

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

    感谢map hubs in referenced project

    【讨论】:

      【解决方案2】:

      尝试查看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);
                  }
              }
      

      【讨论】:

      • 写出:ProtocolError System.Net.HttpWebResponse
      【解决方案3】:

      您是否已将调用以将集线器注册到新的 dll 中? IE。以下内容需要在您的新项目中(但仍从 global.asax 调用):

      RouteTable.Routes.MapHubs();
      

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

      【讨论】:

      • 对 MapHubs 的调用仍然存在于主机中。我知道 Hub 在第一次调用之前就已注册,因为我在启动客户端之前启动了主机。
      • 啊,是的,抱歉,我似乎根本没有正确回答您的问题。让我想想
      【解决方案4】:

      确保单独的 DLL 具有对 Microsoft.CSharp.dll 的引用 - 这是 dynamic 代码所必需的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多