powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите разобраться с созданием и запуском службы Windows.
3 сообщений из 3, страница 1 из 1
Помогите разобраться с созданием и запуском службы Windows.
    #32253764
chess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите разобраться с созданием и запуском службы Windows.
К примеру: у меня есть библиотека «Test.dll» со следующим кодом:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
using System;

namespace Test
{
  public class Class1
   {
	public Class1()
	{
	int a= 10 + 30 ;
	}
   }
}

Я создаю службу Windows (Windows Service)


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;
using Test;

namespace WindowsService2
{
   public class Service1 : System.ServiceProcess.ServiceBase
    {
     private Class1 test;
     private System.ComponentModel.Container components = null;

	public Service1()
	{			
		InitializeComponent();
	}		
	static void Main()
	{
	System.ServiceProcess.ServiceBase[] ServicesToRun;
	ServicesToRun = new System.ServiceProcess.ServiceBase[]
                                                {new   Service1() };

	System.ServiceProcess.ServiceBase.Run(ServicesToRun);
	}
	private void InitializeComponent()
	{
	components = new System.ComponentModel.Container();
		this.ServiceName =  "Service1" ;
	}

	protected override void Dispose( bool disposing )
	{
	if( disposing )
		{
		if (components != null) 
		{
			components.Dispose();
		}
		}
			base.Dispose( disposing );
		}

подключаю к ней Test.dll.
В методе OnStart устанавливаю ссылку не Test.dll

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
protected override void OnStart(string[] args)
		{
			test=new Test.Class1();			
		}
 
		protected override void OnStop()
		{			
		}
	}
}

Устанавливаю службу с помощью installUtil.exe, запускаю «Службы компонентов(ММС)), вижу, что служба установилась успешно, пробую запустить ее, и тут возникает сообщение

«Не удается запустить службу Service1 на Локальном компьютер.
Эта служба не возвращает ошибки. Возможно это внутренняя ошибка Windows или внутренняя ошибка службы».

Если закомментировать строку в методе OnStart

Код: plaintext
1.
2.
3.
protected override void OnStart(string[] args)
		{
		//	test=new Test.Class1();			
		}

и заново запустить службу, то служба запуститься. Такое ощущение, что нехочет обращаться к библиотеке Test.dll.

Помогите пожалуйста разобраться с данной проблемой
...
Рейтинг: 0 / 0
Помогите разобраться с созданием и запуском службы Windows.
    #32253880
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
test=new Test.Class1();

А в обыкновенном приложении эта строка работает? По идее должно быть так:
Test.Class1 test=new Test.Class1();
...
Рейтинг: 0 / 0
Помогите разобраться с созданием и запуском службы Windows.
    #32253942
chess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уже разобрался. Все дело втом, сборка test.dll должна быть или в глобальном кэше сборок или в том же каталоге что и файл сервиса. А у меня test.dll была в другом каталоге.
Более полно это описано в документации в разделе How the Runtime Locates Assemblies
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите разобраться с созданием и запуском службы Windows.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]