Здравствуйте, Sharov, Вы писали:
S>Прощу прощения за оффтоп и придирку: зачем смешивать DAL (repo) и Http слой? Сильно лишняя связанность.
Всё засунуто в метод контроллера и методы репозитория (которые не нужны, если там EF) возвращают коды и булеаны. Тут одними лишь придирками вряд ли можно обойтись.
Здравствуйте, nekoriu, Вы писали:
N>Добрый день.
N>Разрабатываю web-сервис, C#, ASP.NET, .NET Core 3.1. Использую Postman.
N>Вызываю метод login, получаю bearer token. Вызываю Метод 1, ответ от сервиса приходит. Жду одну минуту. Снова вызываю Метод 1, ответа нет. Если вызывать Метод 1 раз в 30 секунд, то можно сделать много успешных вызовов.
N>Есть Метод 2. Если сделать минутную паузу между его вызовами, то на оба вызова прийдут ответы от сервиса.
N>Почему нет ответа на второй вызов Метода 1?
Вызываю метод login, получаю bearer token. Вызываю Метод 1, ответ от сервиса приходит. Жду одну минуту. Снова вызываю Метод 1, ответа нет. Если вызывать Метод 1 раз в 30 секунд, то можно сделать много успешных вызовов.
Есть Метод 2. Если сделать минутную паузу между его вызовами, то на оба вызова прийдут ответы от сервиса.
Здравствуйте, nekoriu, Вы писали:
N>Почему нет ответа на второй вызов Метода 1?
Может, сервер ресурсы экономит, потому и отвечает редко, чтобы всякие непонятные типы его по пустякам не беспокоили.
Хотя джентльмены вроде отвечают 409 в этом случае, а не молчат.
Здравствуйте, nekoriu, Вы писали:
N>Добрый день.
N>Разрабатываю web-сервис, C#, ASP.NET, .NET Core 3.1. Использую Postman.
N>Вызываю метод login, получаю bearer token. Вызываю Метод 1, ответ от сервиса приходит. Жду одну минуту. Снова вызываю Метод 1, ответа нет.
Здравствуйте, nekoriu, Вы писали:
N>Добрый день.
N>Разрабатываю web-сервис, C#, ASP.NET, .NET Core 3.1. Использую Postman.
кстати, да. код постмэн что-нибудь сообщает?
или второй запрос вообще без ответа у вас? т.е. просто висит соединение или разрывается?
vaa>кстати, да. код постмэн что-нибудь сообщает? vaa>или второй запрос вообще без ответа у вас? т.е. просто висит соединение или разрывается?
После второго вызова Метода 1 нет кода, проходит таймаут 10 с.
vaa>или второй запрос вообще без ответа у вас? т.е. просто висит соединение или разрывается?
Путь к сервису лежит через Apache. Провел небольшой эксперимент. Сервис был выключен. Беру свой Метод 1 и вызываю. Ответа не приходит, таймаут в Postman. Убираю тело из запроса, вызываю Метод1, получаю ответ с кодом 503. В начальной версии запроса с Методом 1 меняю метод с GET на POST, отправляю запрос и снова получаю 503. Получается Apache отвечает на запросы определенных форматов.
Здравствуйте, nekoriu, Вы писали:
vaa>>или второй запрос вообще без ответа у вас? т.е. просто висит соединение или разрывается?
N>Путь к сервису лежит через Apache. Провел небольшой эксперимент. Сервис был выключен. Беру свой Метод 1 и вызываю. Ответа не приходит, таймаут в Postman. Убираю тело из запроса, вызываю Метод1, получаю ответ с кодом 503. В начальной версии запроса с Методом 1 меняю метод с GET на POST, отправляю запрос и снова получаю 503. Получается Apache отвечает на запросы определенных форматов.
у вас там в методе логирование. поставьте логирование в самое начало метода. если не приходит. значит по дороге потерялся.
если проходит, значит где-то в коде либо лок(может на базе) либо просто длительное выполнение.
10 сек это мало, установите бесконечное время ожидания ответа сервера. в апаче проверьте какое-нибудь хитрое кэширование может быть.
Здравствуйте, MaxRos, Вы писали:
S>>Прощу прощения за оффтоп и придирку: зачем смешивать DAL (repo) и Http слой? Сильно лишняя связанность. MR>Всё засунуто в метод контроллера и методы репозитория
Ну а где еще, если не по DDD? Т.е в контроллере и должна быть эта логика, связывающая сервисный\сетевой
уровень с уровнем данных.
MR>(которые не нужны, если там EF) возвращают коды и булеаны. Тут одними лишь придирками вряд ли можно обойтись.
Здравствуйте, Sharov, Вы писали:
S>Ну а где еще, если не по DDD? Т.е в контроллере и должна быть эта логика, связывающая сервисный\сетевой S>уровень с уровнем данных.
А где тут сервисный уровень. В идеале в методе контроллера должен быть один вызов и возврат результата. Это же обвязка, отвечающая за http api. Плюс всякие сквозные штуки типа логирования и обработки ошибок захламляют код. А передача HttpContext внутрь репозитория это вообще за гранью.
Здравствуйте, MaxRos, Вы писали:
S>>Ну а где еще, если не по DDD? Т.е в контроллере и должна быть эта логика, связывающая сервисный\сетевой S>>уровень с уровнем данных. MR>А где тут сервисный уровень. В идеале в методе контроллера должен быть один вызов и возврат результата.
Сервисным в данном случае я назвал сетевой уровень, т.е. уровень отвечающих за взаимодействие с http,
ну или обработка соотв. rest api. Ну т.е. взять что-то из сети и передать в dal -- самое то для
контроллера.
Здравствуйте, nekoriu, Вы писали:
N>Добрый день.
N>Разрабатываю web-сервис, C#, ASP.NET, .NET Core 3.1. Использую Postman.
N>Вызываю метод login, получаю bearer token. Вызываю Метод 1, ответ от сервиса приходит. Жду одну минуту. Снова вызываю Метод 1, ответа нет. Если вызывать Метод 1 раз в 30 секунд, то можно сделать много успешных вызовов.
N>Есть Метод 2. Если сделать минутную паузу между его вызовами, то на оба вызова прийдут ответы от сервиса.
N>Почему нет ответа на второй вызов Метода 1?