Проблема с ядром signalR dotnet - PullRequest
0 голосов
/ 24 мая 2018

Выпуск

Сценарий:

  • SignalR версия 1.0.0 RC1 Final
  • DotNet Core 2.0
  • Типичный: Пользователь - Сообщения - Комментарии моделей.

Проблема:

Когда я отправляю модель через websocket, происходит сбой молча (сообщения не отправляются клиентам).Это работает нормально, если я установил нулевое свойство навигации:

    _context.Posts.Add(model);
    _context.SaveChanges();

    model.User.Posts = null;  // <- removing this line fails silently

    _hub.Clients.All.SendAsync("AddAsync", model);

Как я могу диагностировать, что происходит?Кто-то знает, в чем причина?


Некоторые ненужные детали кода

User.cs

public Guid Id { get; set; }
// ...
public virtual List<Post> Posts { get; set; } = new List<Post>();

Post.cs

public Guid Id { get; set; }
// ...
public virtual User User { get; set; }

PostsController.cs

private IHubContext<PostsHub> _hub;
private DatabaseContext _context;

public PostsController(IHubContext<PostsHub> hub)
{
    _hub = hub;
}

// ...

[HttpPost]
public async Task<ActionResult> PostAsync([FromBody] Post model)
{
    // ...

    _context.Posts.Add(model);
    _context.SaveChanges();

    model.User.Posts = null;

    _hub.Clients.All.SendAsync("AddAsync", model);

    // ...
}

1 Ответ

0 голосов
/ 20 января 2019

С помощью json преобразовать сериализовать модель в json и снова десериализовать ее как объект Post непосредственно перед отправкой.Если есть ошибка, она должна появиться там, потому что, если есть цикл зависимости, json convert должен выдать исключение

...