SignalR.Net客户端-分析值时遇到意外字符

SignalR.Net客户端-分析值时遇到意外字符,signalr,signalr-hub,Signalr,Signalr Hub,我正在尝试设置一个.Net客户端,以便从我的服务层向我的信号器中心发送消息。我遵循以下指南: 这就是我所拥有的: _hubConnection = new HubConnection(_baseUrl); // "http://localhost:3806" _hubProxy = _hubConnection.CreateHubProxy("AppHub"); _hubConnection.Start().Wait(); 该中心位于同一个项目中

我正在尝试设置一个.Net客户端,以便从我的服务层向我的信号器中心发送消息。我遵循以下指南:

这就是我所拥有的:

        _hubConnection = new HubConnection(_baseUrl); // "http://localhost:3806"
        _hubProxy = _hubConnection.CreateHubProxy("AppHub");
        _hubConnection.Start().Wait();
该中心位于同一个项目中——它是一个具有表单身份验证的MVC应用程序

我无法通过.Wait()调用,它总是会出现以下错误:

Message=Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
       Source=Newtonsoft.Json

我做错了什么?

因为您使用的是表单身份验证,我看不出您在构建HUB连接时提供了任何凭据,这可能是您的问题。本页介绍如何使用表单身份验证设置信号器连接:

远程登录页面:

using System;
using System.Web.Security;

namespace SignalRWithConsoleChat
{
    public partial class RemoteLogin : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string username = Request["UserName"];
            string password = Request["Password"];
            bool result = Membership.ValidateUser(username, password);
            if (result)
            {
                FormsAuthentication.SetAuthCookie(username, false);
            }
        }
    }
}

作为该问题的替代解决方案,您可能希望从需要身份验证的路径中排除Signalr:

<location path="signalr">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>


我在系统和代理服务器上运行代理应用程序时,会返回一个用于web请求的HTML页面!我关闭代理并工作

当我收到这条消息时,是因为当指向服务器的URL时,我使用了HTTP而不是HTTPS:

using (var hubConnection = new HubConnection("http://someurl.com"))
{
    var hubProxy = hubConnection.CreateHubProxy("smsHub");
    await hubConnection.Start();
    await hubProxy.Invoke(....);
}

指向HTTPS url解决了该问题

如果在浏览器中打开,会得到什么?@HallvarHelleseth-我得到signarjquery代码,从
/*!*ASP.NET SignalR JavaScript库v2.0.1
您再次保存了我。谢谢大家!@Hallvar Spot on(Y)当集线器处于“授权”状态,但connection.Start()未提供凭据或凭据不正确时,会发生此错误,但这不是一条非常有用的消息。在我的情况下,我有一个Web API项目,它正在向ASP.NET MVC Web项目发送消息。我是否将上述配置放在MVC web应用程序的web.config文件中?谢谢
<location path="signalr">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>
using (var hubConnection = new HubConnection("http://someurl.com"))
{
    var hubProxy = hubConnection.CreateHubProxy("smsHub");
    await hubConnection.Start();
    await hubProxy.Invoke(....);
}