.NET НЕ имеет надежной связи с сокетом Asynchronouos?

Для CORS AWS API Gateway всегда включает метод OPTIONS, чтобы разрешить предварительную проверку. Вы можете прочитать больше об этом в документах .

Причина, по которой вы видите предпечатную ошибку в вашем браузере, потому что 403 Запрещено поступает от вашего Custom Authorizer. Custom Authorizer не возвращает заголовки, поэтому вы всегда увидите ошибку предпечатной проверки, если запрос был отклонен Custom Authorzer.

Для устранения неполадки зарегистрируйте политику, которую возвращает ваш Custom Authorizer. Вы можете увидеть это в CloudWatch. Политика должна содержать инструкцию Allow для запрашиваемого ресурса.

9
задан Morgan Cheng 25 October 2008 в 10:36
поделиться

3 ответа

Hmya, это не проблема платформы.NET. Связанная статья KB, возможно, была немного более явной: "Вы применяете заряженное оружие, это - то, что происходит, когда Вы нацеливаете его на ногу". Маркерами в том оружии является.NET, дающая Вам способность запуститься как много асинхронных запросов ввода-вывода, как Вы смеете. Это сделает то, что Вы просите, чтобы это сделало, пока Вы не поражаете некоторый предел ресурса. В этом случае, вероятно, наличие слишком многих прикрепленных получает буферы в "куче" поколения 0.

Управление ресурсами является все еще в значительной степени нашим заданием, не.NET. Это не отличается от выделения памяти без связанного. Решение этой конкретной проблемы требует, чтобы Вы поместили предел на число незаконченного BeginGetResponse () запросы. Имеющие сотни из них имеют мало смысла, каждые из них должен протиснуться через Межтрубу по одному. Добавление другого запроса просто заставит это занимать больше времени для завершения. Или разрушьте свою программу.

11
ответ дан 4 December 2019 в 12:22
поделиться

Вы, очевидно, хотите ограничить количество параллельных запросов, неважно, если Ваш поисковый робот является синхронизирующим/асинхронным. Тот предел не фиксируется, он зависит от Ваших аппаратных средств, сети...

Я не так уверен, что является Вашим вопросом здесь, как реализация.NET HTTP/сокетов "в порядке". Существуют некоторые дыры (См. мое сообщение об управлении тайм-аутами правильно), но это получает сделанное задание (у нас есть производственный поисковый робот, который выбирает ~ сотни страниц в секунду).

BTW, мы используем синхронный IO, только для пользы удобства. Каждая задача имеет поток, и мы ограничиваем количество параллельного потока. Для управления потоком мы использовали Microsoft CCR.

3
ответ дан 4 December 2019 в 12:22
поделиться

Ни одна статья в базе знаний не может дать вам верхнюю границу. Верхние границы могут варьироваться в зависимости от доступного оборудования - верхний предел для машины с памятью 2G будет отличаться для машины с 16g RAM. Это также будет зависеть от размера кучи сборщика мусора, степени ее фрагментации и т. Д.

Что вам следует сделать, так это придумать собственную метрику, используя обратные вычисления конверта. Выясните, сколько страниц вы хотите загружать в минуту. Это должно определить, сколько асинхронных запросов вы хотите выполнить (N).

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

0
ответ дан 4 December 2019 в 12:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: