Подтвердить что ты не робот

Как я могу создавать сервисные приложения с Visual С# Express?

У меня есть приложение для анализа XML файла для интеграции данных в базу данных mssql. Я использую Visual С# express. Есть способ сделать сервис с экспресс-выпуском или мне нужно заставить Visual Studio сделать это?

4b9b3361

Ответ 1

Абсолютно можно. Вы даже можете сделать это с помощью csc. Единственное в VS - это шаблон. Но вы можете напрямую ссылаться на System.ServiceProcess.dll.

Ключевые моменты:

  • напишите класс, наследующий от ServiceBase
  • в Main(), используйте ServiceBase.Run(yourService)
  • в переопределении ServiceBase.OnStart, создайте любой новый поток и т.д., вам нужно выполнить работу (Main() должен немедленно выйти или считать неудачным запуском)

Пример кода

Очень простой код шаблона:

Program.cs

using System;
using System.ServiceProcess;

namespace Cron
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main()
        {
            System.ServiceProcess.ServiceBase.Run(new CronService());
        }
    }
}

CronService.cs:

using System;
using System.ServiceProcess;

namespace Cron
{
    public class CronService : ServiceBase
    {
        public CronService()
        {
            this.ServiceName = "Cron";
            this.CanStop = true;
            this.CanPauseAndContinue = false;
            this.AutoLog = true;
        }

        protected override void OnStart(string[] args)
        {
           // TODO: add startup stuff
        }

        protected override void OnStop()
        {
           // TODO: add shutdown stuff
        }
    }
}

CronInstaller.cs

using System.ComponentModel;
using System.Configuration.Install;
using System.ServiceProcess;

[RunInstaller(true)]
public class CronInstaller : Installer
{
  private ServiceProcessInstaller processInstaller;
  private ServiceInstaller serviceInstaller;

  public CronInstaller()
  {
    processInstaller = new ServiceProcessInstaller();
    serviceInstaller = new ServiceInstaller();

    processInstaller.Account = ServiceAccount.LocalSystem;
    serviceInstaller.StartType = ServiceStartMode.Manual;
    serviceInstaller.ServiceName = "Cron"; //must match CronService.ServiceName

    Installers.Add(serviceInstaller);
    Installers.Add(processInstaller);
  } 
}  

И приложение-приложение .NET не установлено так же, как и обычное сервисное приложение (т.е. вы не можете использовать cron.exe /install или какой-либо другой аргумент командной строки. Вместо этого вы должны использовать .NET SDK InstallUtil:

InstallUtil /LogToConsole=true cron.exe

Ресурсы

Ответ 2

Вы можете попробовать Visual Web Developer Express вместе с библиотекой набора разработчика coding4fun для веб-сервисов (через управляемые обертки кода): -

http://www.microsoft.com/express/samples/c4fdevkit/default.aspx

Ответ 3

Express Edition может писать и компилировать проекты Windows Service, но он не может их создать нормально. Единственный простой способ - создать новый проект службы в Visual Studio, а затем скопировать файлы проекта на машину с помощью Express Edition. После этого вам больше не нужна Visual Studio.

Есть три способа сделать это:

  • Перейдите на машину с Visual Studio и создайте проект
  • Google онлайн-учебник по созданию сервисов и загрузке исходного кода проекта
  • Загрузите и установите 90-дневную пробную версию Visual Studio для создания проекта

Однако вы все равно столкнетесь с некоторыми трудностями, например, если хотите переименовать свой проект или не должны повторять это для каждой новой службы. Лучшее долгосрочное решение - заставить босса окончательно заплатить за копию Standard или Professional edition.

Ответ 4

Согласно this В статье MSDN у вас нет шаблона проекта для службы. Но я уверен, что если вы знаете, что делает шаблон для вас, вы можете создать и скомпилировать службу.