Мониторинг запущенных приложений .net - PullRequest
2 голосов
/ 22 сентября 2008

У меня запущено несколько приложений .net, которые мне нужно отслеживать, например, затем метод AppA вызывается в App1, мое приложение монитора должно это обнаружить. У меня много запущенных приложений, и решение, предлагаемое здесь, состоит в том, чтобы перекомпилировать все эти приложения и включить новую строку в нужные методы, которые мы хотим отслеживать. Я хочу сделать это, только если нет абсолютно никакого способа. Так кто-нибудь когда-нибудь делал что-то подобное? По сути, мне нужно создать новое приложение, которое, когда я нажимаю на него кнопку, говорит мне: метод A вызывается в App1 в режиме реального времени ...

спасибо!

Ответы [ 5 ]

3 голосов
/ 22 сентября 2008

Есть несколько способов сделать это. Один из них - использовать log4Net, «посыпать» ваши методы вызовами методов записи в log4Net. Вы можете выбрать различные приложения для регистрации (места назначения), такие как электронная почта или база данных, но менее известный совет - загрузить отдельную программу, DebugView (SysInternals -> теперь Microsoft), которая прослушивает сообщения по умолчанию .

1 голос
/ 22 сентября 2008

PostSharp способ доставки, как редактировать скомпилированный код .net. Редактирование написано в коде C #, который компилируется (атрибуты) или код конфигурации. У них есть механизм, который может регистрировать (или заполнять или что-то еще) вызов метода / события и многое другое.

Я думаю, это инструмент, который вам нужен.

0 голосов
/ 22 сентября 2008

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

0 голосов
/ 22 сентября 2008

Отражение - это то, что вы ищете в .NET, но я не уверен в деталях реализации того, что вы хотите сделать.

0 голосов
/ 22 сентября 2008

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

...