ASP NET Web Api зависает на несколько минут - PullRequest
0 голосов
/ 03 мая 2018

У меня есть простой веб-API, который принимает один параметр во время публикации:

[HttpPost]
public ResultItem<Reports> SubmitReports(Reports reports)

Модель отчета содержит простые свойства, за исключением одного, который немного сложен (наследование, но не много данных). Когда это свойство имеет значение null, мой API вызывается без каких-либо проблем, но когда оно содержит значение, API зависает на несколько минут, прежде чем, наконец, прибудет в мой метод.

Я точно указал, что проблема может возникнуть в какой-то момент, связанный с проверкой (десериализация работает отлично). Если я отключу валидацию, мой API сразу же будет вызван с полностью корректным объектом:

config.Services.Clear(typeof(ModelValidatorProvider));

Я не аннотировал объект Отчеты какими-либо атрибутами проверки. Каким-то образом проверка недовольна моим объектом, но она не выдает никаких исключений, она висит только на несколько минут.

Как мне найти причину моей проблемы?

1 Ответ

0 голосов
/ 26 мая 2018

Для чего это стоит, я получаю ту же проблему. Вместо того, чтобы полностью отключить проверку, я закомментировал или вручную пропустил вызов метода Validate. Я попытался поместить его в попытку, но, к сожалению, я никогда не попадал в ловушку или линию после окончания попытки. Я использую FluentValidation, но я попытался закомментировать строку, которая установила Fluent в качестве валидатора по умолчанию, и я все еще получаю ту же проблему.

Редактировать: я понял это. Метод Validate () зависает, когда я передаю ему прокси из EF. Я извлекал нужную сущность, исправлял ее и проверял ее, но это была не фактическая сущность, а проверяемый динамический прокси-сервер, приводящий к зависанию API; Я подозреваю, что он проверял все в БД, перебирая ссылки, но я не уверен. В любом случае, я просто отключил ProxyCreationEnabled и подтвердил, что больше не зависает.

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