Nano Hash - криптовалюты, майнинг, программирование

Как управлять настройками службы Windows из графического интерфейса?

У меня есть эта служба Windows, которая взаимодействует с TCP/IP.
Я хочу знать, как приложение Windows Form может изменить настройки этой службы, такие как адрес удаленного хоста и порт для подключения, тайм-аут. длина и параметры журнала.

Я изучил NamedPipe, службу WCF и IPC, но не могу решить, что лучше всего соответствует моему сценарию.
Было бы неплохо иметь возможность изменить настройки службы, выполнив что-то подобное со стороны клиента.

[Service].SetTimeout(3000);

Есть предложения?


  • Я бы изменил конфигурацию службы (где бы она ни хранилась — файл, реестр и т. д.), а затем использовал ServiceController, чтобы указать ему перезагрузить настройки. 19.03.2014

Ответы:


1

Если вам нужен такой программный контроль, лучше всего подойдет WCF. С WCF вы можете сами определить API, например, какие методы вызывать, какие сообщения передавать и т. д. Платформа WCF позаботится об обмене данными за вас. А с файлами конфигурации WCF изменение внутреннего механизма обмена данными тривиально. Например, вы можете заменить NetNamedPipeBinding используется для связи на одном компьютере с NetTcpBinding для связи между компьютерами, просто изменив файл(ы) конфигурации. Полное раскрытие, однако, если вы раньше не занимались WCF, по моему опыту, барьер для входа был довольно высоким. Конечно, я взял свои куски с Visual Studio 2008. Это может быть намного проще в более поздней версии. Вот ответ, который я дал некоторое время назад с некоторыми учебниками, которые помогли мне.

Лично я заменил раннюю реализацию WCF версией на основе TCP через локальный хост в проекте, над которым я работаю. Интерфейсное приложение получает постоянную информацию от службы Windows, когда что-то «работает», и на момент принятия нашего решения потоковая передача WCF была не очень хорошо задокументирована. Мы также видели доказательства проблем, хотя это могло быть просто потому, что мы сделали это неправильно. В любом случае, я очень доволен найденным решением.

Я не могу говорить об именованных каналах напрямую, но из того, что я читал, они просты в использовании.

ХТН.

19.03.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..