服务器上的 SignalR 错误 500 - asp.net

SignalR Error 500 on server - asp.net

我有一个在本地运行良好的简单聊天应用程序,但 SignalR 在远程引发内部服务器错误。

抛出错误的脚本如下所示:

http://mydomainname.com/signalr/negotiate?clientProtocol=1.5&connectionData...

这是日志:

我查看了类似主题的其他答案,但 none 似乎对我有用。 这些是我引用的答案:SignalR Negotiate 404, SignalR Negotiate 404 on Subdomain.

客户端代码如下:

$(function () {
                // Reference the auto-generated proxy for the hub.
                $.connection.hub.url = 'http://mydomainname.com/signalr';
                $.connection.hub.logging = true;

                var chat = $.connection.chatHub;

                var name = '<%= username%>'
                // Create a function that the hub can call back to display messages.
                chat.client.addNewMessageToPage = function (name, message) {
                    // Add the message to the page.
                    bootbox.alert({
                        message: "<b>" + name + "</b>: " + message,
                    });
                };

                chat.client.sendMessage = function (name, message) {
                    // Add the message to the page.
                    $('#discussion').append('<li><strong>' + htmlEncode(name)
                       + '</strong>: ' + $('#message').val() + '</li>');
                };
                // Start the connection.
                $.connection.hub.start().done(function () {
                   // code to append message omitted.
                });
});

在导航到错误 link 时,我得到一个加密异常,如下所示:SignalR CryptographicException on AzureWebsites。这个问题有解决办法吗?

我正在使用 asp.net 4.5 和 SignalR 2。我尝试了很多东西,但不确定为什么会出现内部服务器错误。任何帮助将不胜感激。

正如@Pawel 在上面的评论中所说,问题在于 http://mydomainname.com/signalr/negotiate 返回 500 错误:在这种情况下是加密异常。

我设法通过添加 Microsoft.AspNetCore.DataProtection.SystemWeb 包解决了这个问题——如此处所述:https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/compatibility/replacing-machinekey