Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 11.11.2021
Сообщений: 79

Не работает служба

26.02.2024, 14:14. Показов 2705. Ответов 40

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Впервые пробую сделать службу и столкнулся с проблемой того, что она устанавливается, но не запускается.
Помогите понять в чём проблема
Ссылка на гитхабе чтобы не слать тонну кода
И кроме самой службы, есть вопрос с Form1.cs
не понимаю почему у меня button5_Click и button6_Click просто открывают командную строку?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.02.2024, 14:14
Ответы с готовыми решениями:

Почему служба не работает?
Здравствуйте! Написал не хитрую службу: private void timer1_Tick(object sender, EventArgs e) { var...

Служба некорректно работает в Windows 7
Добрый день! Помогите пожалуйста, не знаю что делать. Состряпал службу на C#. Две основные её функции это создание прослушки на 502...

Не работает служба
Добрый день. Написал службу, которая на данный момент должна делать простую вещь. public Service1() { ...

40
 Аватар для Andrey-MSK
3363 / 2249 / 388
Регистрация: 14.08.2018
Сообщений: 7,603
Записей в блоге: 4
25.03.2024, 17:27
Студворк — интернет-сервис помощи студентам
Raketa12, А как к нему путь задан в коде?
0
0 / 0 / 0
Регистрация: 11.11.2021
Сообщений: 79
25.03.2024, 17:27  [ТС]
Путь к папке в библе прописан следующим образом
C#
1
string SetingsFilePath = Path.Combine(Environment.CurrentDirectory, "Data\\ProgrammData.json");
0
 Аватар для Andrey-MSK
3363 / 2249 / 388
Регистрация: 14.08.2018
Сообщений: 7,603
Записей в блоге: 4
25.03.2024, 17:29
Цитата Сообщение от Raketa12 Посмотреть сообщение
Environment.CurrentDirectory
Ни на что не намекает?
0
0 / 0 / 0
Регистрация: 11.11.2021
Сообщений: 79
25.03.2024, 17:30  [ТС]
Andrey-MSK, И из 3 программы всё работает.

Не по теме:

Коротко напомню к чему привели советы выше:
Я сделал 2 екзешника и 1 библу
Библа работает с файлами
Через библу первый екзешник редактирует файлы
Через библу второй екзешник должен прочитать и уже дальше выполнить действия

0
 Аватар для Andrey-MSK
3363 / 2249 / 388
Регистрация: 14.08.2018
Сообщений: 7,603
Записей в блоге: 4
25.03.2024, 17:30
Raketa12, Environment.SpecialFolder Перечисление
0
0 / 0 / 0
Регистрация: 11.11.2021
Сообщений: 79
25.03.2024, 17:31  [ТС]
Andrey-MSK, Намекает конечно.
Он ведёт в ту папку откуда запускаетя екзешник
0
 Аватар для Andrey-MSK
3363 / 2249 / 388
Регистрация: 14.08.2018
Сообщений: 7,603
Записей в блоге: 4
25.03.2024, 17:31
Raketa12, Ваш сервис ищет этот файл в каталоге, из которого он запускается, а не в том каталоге где нужно...
0
0 / 0 / 0
Регистрация: 11.11.2021
Сообщений: 79
25.03.2024, 17:35  [ТС]
Andrey-MSK, Это я понимаю.
Но я не понимаю как так получилось.
Когда я добавлял службу, в бинпач я прописывал
C:\Program Files\RTech\FtpTransport\TransportServic e.exe
Добавлено через 30 секунд
И он так и занесён в службы

Добавлено через 1 минуту
Бинпач если что не ручками написаный, а он сам собирается через ту же библу, в зависимости от того где она и 3 екзешник находятся
0
 Аватар для Andrey-MSK
3363 / 2249 / 388
Регистрация: 14.08.2018
Сообщений: 7,603
Записей в блоге: 4
25.03.2024, 17:35
Raketa12, Ну дак передайте в путь Environment.ProgramFiles, а не каталог запуска приложения.
0
0 / 0 / 0
Регистрация: 11.11.2021
Сообщений: 79
25.03.2024, 17:38  [ТС]
Andrey-MSK, Так а если программа будет установлена не в ProgramFiles, а на другой диск допустим?
Он же снова ничего не найдёт
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
25.03.2024, 17:38
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
в каталоге, из которого он запускается
не совсем так, данное свойство возвращает или задает рабочую директорию, если запускать приложение с помощью ярлыка то можно переопределить данную директорию, если запускать просто нажатием мыши то директория будет указана из папку в которой был запуск приложения, но это не значит что приложение в этой же папке.
1
 Аватар для Andrey-MSK
3363 / 2249 / 388
Регистрация: 14.08.2018
Сообщений: 7,603
Записей в блоге: 4
25.03.2024, 17:39
Цитата Сообщение от Raketa12 Посмотреть сообщение
Так а если программа будет установлена не в ProgramFiles, а на другой диск допустим?
Ищите запись в реестре про неё и берите оттуда путь.

Добавлено через 38 секунд
Andreyip, Согласен, не так выразился
0
0 / 0 / 0
Регистрация: 11.11.2021
Сообщений: 79
25.03.2024, 17:43  [ТС]
Andrey-MSK,
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Ищите запись в реестре про неё и берите оттуда путь.
Хорошо.
Тогда сразу спрошу
это правильный вариант нашел?
C#
1
2
3
4
5
6
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\App Paths\myexe.exe");
string regFilePath = null;
 
object objRegisteredValue = key.GetValue("");
 
registeredFilePath = value.ToString();
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
25.03.2024, 17:43
Raketa12, попробуйте так
C#
1
var dirPath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
вместо Program ваш класс из сборки
0
 Аватар для Andrey-MSK
3363 / 2249 / 388
Регистрация: 14.08.2018
Сообщений: 7,603
Записей в блоге: 4
25.03.2024, 17:45
Цитата Сообщение от Raketa12 Посмотреть сообщение
Тогда сразу спрошу
это правильный вариант нашел?
А чего меня спрашивать? Проверьте у себя. Я вам только варианты предложил
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
25.03.2024, 17:49
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Ищите запись в реестре про неё и берите оттуда путь.
а если не запускать службу а запустить просто приложение, опять костылить?
0
 Аватар для Andrey-MSK
3363 / 2249 / 388
Регистрация: 14.08.2018
Сообщений: 7,603
Записей в блоге: 4
25.03.2024, 17:53
Цитата Сообщение от Raketa12 Посмотреть сообщение
C#
1
Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\App Paths\myexe.exe");
Этот путь реестра зависит от метода установки. Лучше искать по GUID приложения, который присваивается в самом пакете установщика.

Добавлено через 2 минуты
Цитата Сообщение от Andreyip Посмотреть сообщение
а если не запускать службу а запустить просто приложение, опять костылить?
А чем приложение от службы отличается? Код-то одинаковый на поиск нужной библиотеки в системе через реестр...
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
25.03.2024, 17:56
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
чем приложение от службы отличается
Тем что если служба не установлена, то в реестре вообще ничего не будет, проще и универсальнее взять сборку по классу и из нее вытащить путь, далее его скомпоновать, таким образом даже если приложение просто скопировано в любую директорию, путь к настройкам будет всегда одинаковый.
0
 Аватар для Andrey-MSK
3363 / 2249 / 388
Регистрация: 14.08.2018
Сообщений: 7,603
Записей в блоге: 4
25.03.2024, 17:57
Цитата Сообщение от Andreyip Посмотреть сообщение
Тем что если служба не установлена, то в реестре вообще ничего не будет
ТС не службу ищет, а вспомогательную библиотеку с её файлом настроек.
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
25.03.2024, 18:03
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
а вспомогательную библиотеку с её файлом настроек
Ага, похоже через его же написанную библиотеку, тем более тогда берем класс из библиотеки которая будет грузить настройки, через отражение получаем сборку и путь к библиотеке, комбинируем получаем путь к настройкам. Код получается одинаковый, ни зависит ни от рабочей директории, ни от реестра.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.03.2024, 18:03
Помогаю со студенческими работами здесь

Служба работает не на всех ПК
Добрый день, форумчане! Сильно не пинайте, т.к. в net начинающий :). Возникла проблема, досталась программа по наследству на c# и...

Не работает служба WCF
Подскажите пожалуйста почему не получаются данные, public interface IService { string GetName();

Служба, которая работает по расписанию
Как создаются службы, которые должны что-то делать каждые N минут? Я так понимаю, что при запуске службы инициализируется таймер и...

не работает служба поиска
Всем привет, столкнулся с такой проблемой, не работает служба поиска Windows. Сама иконка поиска находится на панели задач, при нажатии...

Не работает служба mysql
Пытаюсь вручную установить веб сервер. За основу взял вот это руководство http://habrahabr.ru/post/203012/. Застрял на том что не могу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru