SignalR意外响应代码:500

3

当我使用JsonSerializer选项时

_connection.JsonSerializer.TypeNameHandling = TypeNameHandling.All

在执行_connection.Start()时,我收到了一个错误信息: {"StatusCode: 500, ReasonPhrase: 'Internal Server Error', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:\r\n{\r\n Date: Tue, 04 Mar 2014 12:26:26 GMT\r\n Server: Microsoft-HTTPAPI/2.0\r\n Content-Length: 0\r\n}"}

使用下列选项后,一切工作正常: _connection.JsonSerializer.TypeNameHandling = TypeNameHandling.Auto


在服务器端查看堆栈跟踪信息以更好地调试。也许可以打开您的“立即窗口”(CTRL+ALT+I)(如果我没记错的话)来找出发生了什么。 - Aniket Inge
消息未被传递到服务器端。 - Shachaf.Gortler
@Shachaf.Gortler 我也遇到了类似的问题,如果您有任何解决方向,我会非常感激! - theycallmemorty
1个回答

2

您需要启用默认情况下关闭的服务器详细错误信息。我仅在调试模式下启用它们。

[assembly: OwinStartup(typeof(Startup))]
namespace MvcProject.App_Start
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            var hubConfiguration = new HubConfiguration();

#if DEBUG
            hubConfiguration.EnableDetailedErrors = true;
#endif
            app.MapSignalR(hubConfiguration);

接下来的错误应该会很容易理解。

还要检查您是否有修复此错误的JSON.net版本: JsonSerializer未正确处理TypeNameHandling属性


我正在使用json.net 6.0.0.0版本。 - Shachaf.Gortler
不是那样的,除非它是一个回归错误。你有关于实际服务器错误的更多细节吗? - dove
从来没有使用过TypeNameHandling.All,好奇你为什么要用它?猜测一下,你发送的对象在JSON中是否有所有值的命名属性? - dove

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接