Как отслеживать количество подключений к удаленному компьютеру для ASP.NET приложение?

#c# #asp.net #.net-3.5 #system.net

#c# #asp.net #.net-3.5 #system.net

Вопрос:

Я пытаюсь решить недетерминированные зависания в AST.NET приложение. У меня есть скрытое подозрение, что предел максимального подключения достигнут.

Итак, мой вопрос в том, как я могу проверить свои подозрения? Существует ли какой-либо счетчик производительности или какой-либо подобный метод ThreadPool.GetAvailableThreads для отслеживания количества одновременных подключений к удаленному компьютеру?

Также что означает «количество одновременных подключений»? Насколько я понимаю, это количество для каждого домена приложения. Однако doest это учитывает соединение с сокетами, открытое в.Сетевые вызовы?

Ответ №1:

Вы можете использовать Fiddler для мониторинга http-подключений или TCPView для мониторинга всех подключений компьютера.

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

Комментарии:

1. Я не думаю, что fiddler — это вариант. Во-первых, он работает только для https (ов), а во-вторых, он предназначен для использования в качестве прокси-сервера между браузером и Интернетом. Я никогда не слышал об использовании для asp.net приложение, хотя установка его в качестве прокси для вызовов веб-служб, вероятно, возможна.

2. Я предположил, что ваш ASP.NET приложение использует http (ы) соединение. Мы используем fiddler для отладки подключений CALDAV из нашего приложения на C #, поэтому он работает даже вне браузера (для приложений, считывающих настройки прокси из Windows).

3. Если вы хотите отслеживать все подключения, есть приложение под названием TCPView от Sysinternals: technet.microsoft.com/en-us/sysinternals/bb897437

4. Если бы маршрутизатор заблокировал соединение, вы бы не видели ASP.NET зависание — вы получите сетевую ошибку. @Jakub: большинство веб-сервисов работают по HTTP; Fiddler перехватит любой исходящий Http-трафик, будь то в Интернет или локальную сеть.

5. @Binus @Dan зависание вызвано тем, что . Net использует внутренний механизм объединения подключений, а максимальный размер пула определяется в [maxConnection]. Для получения дополнительной информации по этому вопросу смотрите этот КБ