Search code examples
c#asp.net-mvcsignalrsignalr-2

SignalR 2.0 - 400 Bad Request


Installed signalR sample nuget package into an existing MVC app. When negotiating connection I get the following error randomly:

NetworkError: 400 Bad Request - http://localhost:19000/signalr/connect?transport=serverSentEvents&clientProtocol=1.5&connectionToken=GXM1JG%2B8qT13Q5DRblCFTVqQL1OrRS9dvSJ2hoYTEo9aghcvO0aQbKPUW9hC%2Bw4%2FpKfpmLRNcpCeJEnS4WkON%2F3JxjUshiaRRBf5UzoAsjZSmJdn&connectionData=%5B%7B%22name%22%3A%22stockticker%22%7D%5D&tid=7"...

Other times, I'm able to establish connection just fine. I've noticed this is due to ConnectionToken containing a "+" sign

Does not work:

"ConnectionToken":"+S981mX0eUA2mfsuMB2nFO9ufg/47e2RAjOA38BS5ZQ14mfdeb8uNyk28UEe+7RmLYKHIuWi+9dTo5v3r8G8j3u6rmTavzt87jqKabhlHTue6Wqi"

connectionToken=%2BS981mX0eUA2mfsuMB2nFO9ufg%2F47e2RAjOA38BS5ZQ14mfdeb8uNyk28UEe%2B7RmLYKHIuWi%2B9dTo5v3r8G8j3u6rmTavzt87jqKabhlHTue6Wqi

Works:

"ConnectionToken":"zBvrOSuqziot9pJXKfAxpXfPMYY4pI/069Ks/uDoOwm8YYydTParbim7o3YiyrM4NInLJ7wKzwc3YXAlb3sVUq/R0abV2OSOzMydbgUYMPfawEDv"

connectionToken=zBvrOSuqziot9pJXKfAxpXfPMYY4pI%2F069Ks%2FuDoOwm8YYydTParbim7o3YiyrM4NInLJ7wKzwc3YXAlb3sVUq%2FR0abV2OSOzMydbgUYMPfawEDv

In contrast, I've created a brand new MVC app and installed SignalR Nuget sample-this time however everything works just fine.

What could be potential causes of such behavior in my existing app?


Solution

  • This issue was related to one of the existing IHTTPModules that was rewriting URL in the http request cycle and it was not related to SignalR.