Как разместить большой объект в веб-интерфейсе - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть класс, который отправляет данные в веб-API, который затем обрабатывает большой объект и генерирует соответствующие записи в БД.Я имею дело с довольно большим объектом, в котором есть несколько типов подобъектов.Это код, который у меня есть:

var content = new StringContent(JsonConvert.SerializeObject(largeObject), Encoding.UTF8, "application/json");
var response = client.PostAsync(serviceEndpointURL,content).Result;

Это понятно, что SystemOutOfMemoryException возвращает, но я не уверен, как я могу разработать это для поддержки таких больших объектов.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

В качестве альтернативы, я тоже пробовал это, но и здесь, это ошибка в строке ser.Serialize () с тем же исключением.

var content = new PushStreamContent((stream, httpContent, transportContext) =>
{
    using (var tw = new StreamWriter(stream))
    {
        var ser = new JsonSerializer();
        ser.Serialize(tw, largeObject);
    }
});

var response = client.PostAsync(serviceEndpointURL,content).Result;
0 голосов
/ 28 февраля 2019

Передача большего количества объектов считается, что Web API не будет надежным.Вам нужно продумать другой вариант для разработки своего решения.Вы можете использовать некоторые службы очереди сообщений (например, RabbitMQ) и обработчик внутренних сообщений.Web API Создайте некоторый запрос на работу, и обработчик сообщений обработает сообщение в бэкэнде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...