Создание службы windows для подключения python и запуска сервера Django-----

Шаг-1: Откройте Visual Studio, перейдите в меню Файл, выберите Новый проект (Ctrl+Shift+N). Откроется новое окно для создания проекта. В поисковой строке в правом верхнем углу найдите Windows Service (C#). Если вы не получили ни одной службы Windows Service, необходимо правильно установить вашу визуальную студию (установите .NET Desktop Development). Дайте службе имя PythonService и выберите OK.

Шаг-2: После создания проекта сервиса, пользователь получит 04 файла по умолчанию - App.config, Program.cs, ProjectInstaller.cs, Service1.cs

App.config предназначен для конфигурирования данных приложения или создания соединения
Program.cs будет инициировать сервис
. ProjectInstaller.cs - это установщик для службы. Дважды щелкните на нем. Нажмите правую кнопку и добавьте установщик службы. serviceInstaller1 будет добавлен на serviceProcessInstaller1. Выберите свойство serviceInstaller1, укажите ServieName, измените StartType на Automatic (если необходимо).
. Перейдите к свойству serviceProcessInstaller1, измените Account на LocalSystem

Шаг-3: Файл Service1.cs будет содержать весь необходимый код для запуска python cmd и выполнения команды python. После этого будет запущен сервер Django. Код для выполнения основной команды python имеет следующий вид-

Это полный исполняемый код для PythonService. Если есть необходимость проверить, запущен сервис или нет, то пользователь может отправить сообщение через нижеприведенный класс и получить конечный результат - запущен или нет.

public class CommonFeature
{
    public static void WriteToFile(string Message)
    {
        string LogStatus = ConfigurationManager.AppSettings.Get("LogStatus");

        if (LogStatus != null && LogStatus.ToUpper() == "ON")
        {
            string path = AppDomain.CurrentDomain.BaseDirectory + "\\Logs";
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            string filepath = AppDomain.CurrentDomain.BaseDirectory + "\\Logs\\ServiceLog_" + DateTime.Now.Date.ToShortDateString().Replace('/', '_') + ".txt";
            if (!File.Exists(filepath))
            {
                // Create a file to write to.   
                using (StreamWriter sw = File.CreateText(filepath))
                {
                    sw.WriteLine(Message);
                }
            }
            else
            {
                using (StreamWriter sw = File.AppendText(filepath))
                {
                    sw.WriteLine(Message);
                }
            }
        }
    }
}
Вернуться на верх