Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Остановить сервис в OnStart
|
|||
|---|---|---|---|
|
#18+
В OnStart, т.е. при старте сервиса проверяю существует ли файл настроек. Логично, если файла нет, то необходимо остановить сервис или препятствовать его дальнейшей загрузки. Как это сделать? За любой ответ благодарствую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 12:49 |
|
||
|
Остановить сервис в OnStart
|
|||
|---|---|---|---|
|
#18+
nostraВ OnStart, т.е. при старте сервиса проверяю существует ли файл настроек. Логично, если файла нет, то необходимо остановить сервис или препятствовать его дальнейшей загрузки. Как это сделать? За любой ответ благодарствую. Например поставить продолжительную задержку, тогда SCM сам не сможет запустить Service. ИМХО : 1 сервисы не должны останавливать сами себя. За них это должен делать SCM либо другой внешний объект, управляющий сервисами (например ServiceController ) Тем не менее можете почитать дискуссию где приводятся различные варианты (не все работающие) остановки сервиса. 2 прописывать логику в OnStart тоже не есть очень хорошо, т.к. ошибки во время старта сервиса трудно отслеживать, а сам сервис трудно отлаживать при разработке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 13:31 |
|
||
|
Остановить сервис в OnStart
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ. Мне приходило в голову открывать файл настроек без обработчика ошибок в OnStart. В этом случае при отсутствии файла будет вызываться ошибка и SCM не сможет загрузить сервис (проверено). Т.к. в OnStart я считываю настройки и код проверен в др. приложениях, то можно с большой вероятностью сказать, что сервис не запускается, только потому, что не может найти файл настроек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 13:42 |
|
||
|
Остановить сервис в OnStart
|
|||
|---|---|---|---|
|
#18+
nostraВ OnStart, т.е. при старте сервиса проверяю существует ли файл настроек. Логично, если файла нет, то необходимо остановить сервис или препятствовать его дальнейшей загрузки. Как это сделать? За любой ответ благодарствую. Самый простой вариант - создать необрабатываемое исключение при старте. (Если наличие файла необходимо для корректного запуска сервиса). Хотя, писать что-то кроме MyServiceThread.Start() в OnStart - моветон. Или же завершить выполнение основного потока сервиса после старта. Тогда менеджер должен сообщить пользователю, что "Сервис был запущен, а затем остановлен. Некоторые сервисы прекращают свою работу, если им нечего делать." Пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. -- WBR, Roman S. Golubin ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 13:44 |
|
||
|
Остановить сервис в OnStart
|
|||
|---|---|---|---|
|
#18+
Кстати код: protected override void OnStart(string[] args) { // TODO: Add code here to start your service. XmlSerializer mySerializer = new XmlSerializer(typeof(ConfigInXml)); TextReader myReader; try { myReader = new StreamReader(@"C:\Tec1.xml"); settingsXml=(ConfigInXml) mySerializer.Deserialize(myReader); myReader.Close(); } catch (Exception exc) { eventLog1.WriteEntry (exc.Message,System.Diagnostics.EventLogEntryType.Error); } timer1.Interval=settingsXml.TimeOut; timer1.Enabled=true; eventLog1.WriteEntry("Сервис запущен, настройки считаны); } В Event Viewer создается запись: Could not find file "C:\Tec1.xml". и сервис не запускается. Вот и решение! Мда, не занаешь, где найдешь, где потеряешь. На С# я совсем не долго, но думаю это решение достаточное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 13:48 |
|
||
|
Остановить сервис в OnStart
|
|||
|---|---|---|---|
|
#18+
Roman S. Golubin Или же завершить выполнение основного потока сервиса после старта. Да, что-то я тут прогнал. Совсем мой склероз плохим стал. ;-) Просто исключение при старте: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 15:09 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=20&tid=1438233]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
18ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 281ms |

| 0 / 0 |
