Что было бы самым эффективным способом для этого?
Это для обсуждения - я осмелюсь сказать, что причиной этого является сообщение. Лично я бы пропустил чтение журналов на машине по машинной основе и сохранил результаты этих операций в конце SQL Server. Тем не менее, это сложный подход к производственной среде и может не применяться в зависимости от того, сколько усилий вы хотите внести.
В идеале это будет написано как отдельная служба Windows, а создание/отладка стала намного проще в более поздних версиях Visual Studio. Другим жизнеспособным подходом является создание консольного приложения, которое можно легко запустить и увидеть вывод. При развертывании вы можете использовать инструмент NSSM, чтобы консольное приложение могло работать как служба Windows. Это, пожалуй, наименее болезненный, но слегка неуклюжий метод - другие плакаты могут иметь более аккуратное решение.
Наличие одного приложения или программы, работающей на одном сервере, было бы самым простым способом, но это предполагает, что сервер имеет доступ к соответствующим общим ресурсам на каждом компьютере, на котором находятся файлы журнала.
Если вы хотите развернуть службу на каждой рассматриваемой машине и запустить ее локально (минуя всю многопоточную методологию, поскольку у вас есть один поток, проверяющий один набор файлов журнала в определенном расписании), то с SQL Задний конец сервера - это более простой способ, так как проще настроить учетную запись SQL Server и разрешить удаленные подключения к ней, чем настраивать общие папки папок на множестве компьютеров (я должен исправляться на thsi, поскольку я не являюсь домен admin). Недостатком этого является то, что если вам нужно обновить приложение, то обновление на каждой машине будет больно.
Это сводится к тому, какой подход лучше всего подходит для вашей ситуации? Единственное развертывание, требующее использования общих ресурсов компьютера или многоразвертывания с одним экземпляром SQL Server (или другим хранилищем данных)?
Поскольку узким местом почти наверняка будет жесткий диск, который не может обрабатывать более одного запроса одновременно, многопоточность чтения файла вряд ли поможет, и может даже пострадать. Многопоточность помогла бы только в том случае, если у вас много обработанных обработкой ЦП, которые вы делаете с данными в файле. – Servy
Файлы, которые я читал, находятся на разных жестких дисках разных машин разных пользователей. –