说明连接时SignalR 2.2.0和SignalRjs 2.2.0失败:客户端版本1.5,服务器版本1.2

时间:2016-03-29 18:20:59

标签: javascript .net signalr

我有这个调用来连接我的javascript客户端中的signalr:

 $.connection.hub.start().done(function () {
    console.log("Now connected, connection ID=" + $.connection.hub.id);
    connectionId = $.connection.hub.id;
}).fail(function (error) {
    console.log('Invocation of start failed. Error: ' + error);
});

它正常工作了很长时间,但现在我收到此错误消息:

  

调用启动失败。错误:错误:您使用的是与服务器不兼容的客户端版本。客户端版本1.5,服务器版本1.2。

我正在使用SignalR 2.2.0和SignalR.JS 2.2.0

更新 添加此标记后发生错误,我们需要这个用于azure:

<rewrite>
      <rules>
          <rule name="StaticContent">
              <action type="Rewrite" url="{REQUEST_URI}"/>
          </rule>
      </rules>
  </rewrite>

使用此标记时,返回的协议版本为1.2,但是当它被删除时,版本是正确的(1.5)。

1 个答案:

答案 0 :(得分:3)

您可以尝试在web.config

中为该重写规则添加例外
<rewrite>
    <rules>
        <rule name="StaticContent">
            <match url=".*" />
            <conditions logicalGrouping="MatchAll">
                <add input="{REQUEST_URI}" matchType="Pattern" pattern="signalr/(.*)" negate="true" />
            </conditions>
            <action type="Rewrite" url="{REQUEST_URI}"/>
        </rule>   
    </rules>
</rewrite>