У меня есть сайт ASP.NET (C#), который использует стороннюю DLL для обработки данных, которые пользователи POST через веб-форму. Вызов довольно прост:Обнаружение 100% загрузки процессора по ссылке библиотеки
string result = ThirdPartyLib.ProcessData(myString);
Однажды в голубой луны эта библиотека зависания и (по моим бревнами хостинг-провайдер) потребляет 100% CPU. Веб-сайт размещен на общем хостинге, поэтому я не имею доступа к журналам IIS или журналам событий. Когда это произойдет, мой сайт автоматически останавливается на мониторе производительности хостинг-провайдера, и я снова включил его.
Теперь я знаю, что правильная вещь для этого - это исследование проблемы и исправление (или замена) DLL. Но поскольку это стороннее программное обеспечение, я не могу его исправить, и их поддержка вообще не помогает. Более того, я не могу воспроизвести проблему. Замена библиотеки - тоже боль.
Есть ли способ в C#, чтобы определить, когда эта DLL начинает потреблять 100% -ый CPU и автоматически убить процесс из моего кода ASP.NET?
является 'ThirdPartLib.ProcessData (myString)' Вы знаете, что подкласс метода/класса является публичным классом или статическим классом.? есть ли проблемы с размещением .. можете ли вы иметь стороннюю отладку/исправить код ..? можете ли вы также показать, как вы потребляете/создаете экземпляр объекта класса 3-й части.? – MethodMan
@MethodMan, 'это публичный класс или статический класс ..?' Это публичный нестатический класс, который имеет единственный без параметров ctor и единственный метод, который мне нужно вызвать. 'Есть ли проблемы с размещением' 'lib '' не выставлять никаких классов IDisposable. 'у вас есть сторонняя отладка/исправление кода ...? Ответ гораздо ближе к« нет », чем к« да ». Если бы я мог исправить, я бы, очевидно, использовал его. 'можете ли вы также показать, как вы потребляете/создаете экземпляр экземпляра? На самом деле ничего не показывать. Публичные методы lib очевидны, и нет никакого способа их неправильного использования. –