vinodh muthusamy Ответов: 2

Как контролировать указанный размер папки с помощью WCF service-C#


Как я развиваюсь asp.net применение.
Мне нужно следить
C:\Monitor
(папка)общий размер с использованием службы wcf и оповещение, когда он достигает предела 1 ГБ. Это должно быть сделано в фоновом режиме.

Например: я установил лимит в 1 ГБ. Когда
C:\Monitor
папка достигает около 800 МБ, я должен предоставить мне предупреждающее сообщение. Как это возможно в сервисе WCF или любом другом сервисе, при размещении в IIS.

Что я уже пробовал:

I have googled so many stuff, Currently it doesn't match my requirement.

Suvendu Shekhar Giri

Не Ясно!
Пожалуйста, потратьте еще немного времени на четкое описание вашей проблемы.
Также поделитесь тем, что вы уже пробовали.

2 Ответов

Рейтинг:
2

Ashwin. Shetty

Любая конкретная причина, по которой вы пытаетесь достичь этого с помощью WCF. Насколько я понимаю, это может быть достигнуто с помощью Windows EXE или службы Windows. Вы можете использовать filesystemwatcher и ждать события. На конкретном событии проверьте размер и запустите свое правило. Для справки вы можете проверить Класса filesystemwatcher.Измененное Событие (System.IO)[^]


vinodh muthusamy

Рабочая ям в веб-приложения на основе.

Ссылка,которой вы поделились,касается создания, изменения, удаления. Но мне нужно следить за размером папки.

Ashwin. Shetty

Веб-базовое приложение может проверять размер только по запросу на сервер. если вы попытаетесь запустить его в фоновом режиме, он не будет надежным. IIS также может тайм-аут и остановить поток выполнения. Если бы я был на вашем месте, я бы разместил службу WCF внутри службы Windows (Self-hosted) и выставил WCF API, который будет принимать два параметра ( папка для мониторинга и идентификатор электронной почты для оповещения). Контролируйте папку, которая была получена в отдельном потоке,и предупреждайте пользователя на основе порога. Эта служба WCF будет вызываться внутренне с моего веб-сайта.

Вы правы ссылка, которой я поделился, предназначена для создания, изменения и удаления файла. Разве это не изменит размер вашей папки ??

vinodh muthusamy

Предложение, которое вы мне дали, в точности соответствует моему требованию. Не могли бы вы предоставить какой-нибудь пример кода или ссылку для просмотра.

Ashwin. Shetty

Будет трудно указать вам полный код, но вы можете поискать WCF self hosting. После проверки из конечной точки службы WCF возникает событие, которое регистрируется службой windows внутренне. Зарегистрируйте метод к этому событию, которое создаст новый поток и прикрепит функцию, которая может выполнять вышеуказанную задачу

Рейтинг:
0

Prafulla Hunde

Как было предложено в решении 1, Вы можете попробовать FileSystemWatcher. Однако в некоторых случаях этот класс ненадежен,и вы можете пропустить события,и его поведение не согласовано во всех поддерживаемых операционных системах(XP, Win7, Win10 и т. д.). Кроме того, он может запускать несколько событий изменения для одной операции сохранения в одном файле. В нашем случае мы закончили тем, что использовали таймер, который периодически сканирует папку на наличие каких-либо изменений. Я не могу сказать, что это лучший подход, но, по крайней мере, он был более надежным и последовательным, чем FileSystemWatcher. Может быть, вы можете объединить оба этих варианта, чтобы наилучшим образом удовлетворить ваши потребности. Удача :-).