【问题标题】:SignalR refusing connectionsSignalR 拒绝连接
【发布时间】:2015-02-23 18:06:57
【问题描述】:

我正在尝试将我的 signalR 演示配置到我的项目中

框架:4.0SignalR 版本:1.1.3

这是我的代码

$(function () {
            var connection = $.hubConnection('http://localhost:32555/');
            var chat = connection.createHubProxy('myChatHub');
            chat.on('send', function (message) {
                $('#chat').html($('#chat').html() + "\r\n" + message);
            });
            connection.logging = true;
            connection.start().done(function () {
                alert("Connection Complete");
                $('#sendBtn').click(function () {
                    chat.invoke('send', $('#message').val());
                });
            }).fail(function (param) {
                console.log(param);
            });
        });

全球.asax

 protected void Application_Start(object sender, EventArgs e)
        {

            RouteTable.Routes.MapHubs(new HubConfiguration { EnableCrossDomain = true });
        }

.cs

namespace vPortal
{
    [HubName("myChatHub")]
    public class LetsChat : Hub
    {
        public void send(string message,string userid,string Name)
        {
            Clients.All.addMessage(message, userid, Name);
        }
    }
}

当我尝试运行页面时出现此错误

SignalR: Error during negotiation request:

但是,我在 global.asax 中启用了代理,我尝试将我的 signalR 升级到版本 2.2.3。 但是,我的项目包与当前版本不兼容,所以我安装了 1.1.3 版本。

我不知道我在做什么错在这里我看到有连接但无法建立。

【问题讨论】:

  • 为什么启用 EnableCrossDomain = true ?
  • @FrebinFrancis 我在某处看到他们默认从 1.1.3 禁用跨域
  • 所以您想为您的应用程序启用跨域请求?我也想知道你是如何在你的应用程序中为 signalR 包含脚本文件的
  • @FrebinFrancis 不,但我只是在测试,但如果你禁用 CORS,那么我也会收到同样的错误这个 SignalR:不兼容的协议版本
  • 请参阅此链接以了解如何在应用程序中使用 signalR 1X。 asp.net/signalr/overview/older-versions/…

标签: c# asp.net signalr


【解决方案1】:

很多功劳归于this 人。 他让我的问题很容易解决。

看,首先我所有的引用都是 4.0 然后所以我使用 Signalr Older version 1.1.4

这是我的错误场景:

  1. SignalR 无法连接: 我通过在 Global.asax 文件中添加行 RouteTable.Routes.MapHubs(); 来消除此错误。

  2. 请求协商:我犯了一个愚蠢的错误,我的 chat.aspx 页面中的 命名空间 不同。

    李>
  3. 版本冲突:看,我得到了与 signalR 的当前版本 (2.3.2) 不兼容的以前的库。所以,我不得不坚持使用它的以前版本(1.1.3),步骤给出了here,而且非常简洁。

再次,我很确定我的代码 signalR 可以正常工作:

所以,运行我的 chat 并且我的第一条消息是成功的,然后一段时间后再次出现错误,错误是

the added or subtracted value results in an un-representable datetime. signlar

所以,这让我很头疼。这肯定与 signalR 无关 我从 frebin 那里得到了线索,并在我的 web.config 中意识到了这一点

 <httpRuntime executionTimeout="180" maxRequestLength="512000" />

之前的 executionTimeout 值为 9999999999

我改成180了,效果很好!!!

我已经为未来的偏好添加了所有场景。

【讨论】:

    猜你喜欢
    • 2021-10-28
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多