ฉันต้องการติดตั้งบริการ Windows โดยใช้พรอมต์คำสั่ง Windows (ไม่ใช่พรอมต์คำสั่ง Visual Studio)
ฉันจะทำสิ่งนี้ได้อย่างไร
ฉันต้องการติดตั้งบริการ Windows โดยใช้พรอมต์คำสั่ง Windows (ไม่ใช่พรอมต์คำสั่ง Visual Studio)
ฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
นำทางไปที่ installutil.exe ในโฟลเดอร์. net ของคุณ (สำหรับ. net 4 เป็น C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 เป็นต้น) และใช้เพื่อติดตั้งบริการของคุณดังนี้:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"
ไม่มีอะไรผิดปกติกับคำสั่ง SC Create คุณเพียงแค่ต้องรู้เนื้อหาที่ถูกต้อง:
SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"
sc
คำสั่งด้วยเช่นกัน แต่มันแตกต่างกันไม่สามารถใช้ในการลงทะเบียนบริการได้
หากชื่อไดเรกทอรีมีช่องว่างเช่นc:\program files\abc 123
นั้นคุณต้องใช้เครื่องหมายคำพูดคู่รอบ ๆ พา ธ
installutil.exe "c:\program files\abc 123\myservice.exe"
มันทำให้ง่ายขึ้นมากถ้าคุณตั้งค่าไฟล์ bat ดังต่อไปนี้
เช่นหากต้องการติดตั้งบริการให้สร้าง "myserviceinstaller.bat" และ " Run as Administrator "
@echo off
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
installutil.exe "C:\Services\myservice.exe"
if ERRORLEVEL 1 goto error
exit
:error
echo There was a problem
pause
เพื่อถอนการติดตั้งบริการ
เพียงเพิ่ม-uลงในคำสั่ง installutil
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "C:\Services\myservice.exe"
ดำเนินการดังต่อไปนี้:
c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
สิ่งสำคัญคือการเปิดด้วยสิทธิ์ผู้ดูแลระบบมิฉะนั้นคุณอาจพบข้อผิดพลาดที่เกิดขึ้นซึ่งไม่สมเหตุสมผล หากคุณได้รับสิ่งใดให้ตรวจสอบว่าคุณได้เปิดด้วยสิทธิ์ผู้ดูแลระบบก่อน!
หากต้องการเปิดด้วยสิทธิ์ผู้ดูแลระบบให้คลิกขวาที่ 'Command Prompt' และเลือก 'Run as administrator'
บริการติดตั้ง: -
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe"
"C:\Services\myservice.exe"
UnInstall Sevice: -
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"
ฉันต้องเพิ่มอีกหนึ่งจุดในชุดข้อความนี้ ในการติดตั้ง / ถอนการติดตั้ง64-bit
ชุดประกอบหนึ่งควรใช้64-bit
รุ่นของเครื่องมือ ในการติดตั้งบริการคำสั่งควรเป็น:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe"
"C:\YourFolder\YourService.exe"
และการถอนการติดตั้งคำสั่งควรเป็น:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u
"C:\YourFolder\YourService.exe"
สร้าง*.bat
ไฟล์ข้างในการให้บริการของคุณหน้าต่างexe
ไฟล์สำหรับการติดตั้งกับบริบทต่อไปนี้:
CLS
ECHO Installing My Windows Service
START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"
สร้าง*.bat
ไฟล์ข้างในการให้บริการของคุณหน้าต่างexe
ไฟล์สำหรับการถอนการติดตั้งกับบริบทต่อไปนี้:
CLS
ECHO Uninstalling My Windows Service
START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"
เรียกใช้แต่ละbat
ไฟล์ในฐานะผู้ดูแลระบบเพื่อติดตั้งหรือถอนการติดตั้งบริการ windows ของคุณ
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
เพื่อไปที่โฟลเดอร์installutil C:\ProjectFolder\bin\Debug\MyProject.exe
หมายเหตุ:ในการถอนการติดตั้ง:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe
เปิด Visual Studio และเลือกโครงการใหม่โดยเลือกWindows Service
เทมเพลตในWindows Desktop
แท็บ กว่าคัดลอกรหัสต่อไปนี้ลงในไฟล์ service_name.cs ของคุณ
using System.Diagnostics;
using System.ServiceProcess;
namespace TimerService
{
public partial class Timer_Service : ServiceBase
{
public Timer_Service()
{
InitializeComponent();
}
static void Main()
{
if (System.Diagnostics.Debugger.IsAttached)
{
Timer_Service service = new Timer_Service();
service.OnStart(null);
}
else
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Timer_Service()
};
ServiceBase.Run(ServicesToRun);
}
}
protected override void OnStart(string[] args)
{
EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service start successfully." });
}
protected override void OnStop()
{
EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service stop successfully." });
}
}
}
คลิกขวาที่ไฟล์ service_name.cs แล้วเปิดตัวออกแบบบริการ Add Installer
กว่าคลิกขวาและเลือก กว่าคลิกขวาบนserviceProcessInstaller1
และเปลี่ยนค่าของคุณสมบัติของการAccount
จากไปUser
Local System
ลบstatic void main
วิธีการจากProgram.cs
ไฟล์ กว่าบันทึกและสร้างโครงการของคุณ
หมายเหตุ:bin\Ddebug
โฟลเดอร์goto ของโฟลเดอร์โครงการของคุณ กว่าเปิดคุณสมบัติของservice_name.exe
ไฟล์ของคุณ กว่าCompatibility
แท็บgoto Change Settings For All Users
กว่าการคลิกที่
Run this program as an administrator
เลือกตัวเลือก
ตอนนี้คุณต้องเปิด CommandPromt ในฐานะผู้ดูแลระบบ หลังจากเปิดให้ตั้งค่าไดเรกทอรีเป็นที่InstallUtil.exe
เก็บไฟล์ของคุณ สำหรับอดีต: C:\Windows\Microsoft.NET\Framework64\v4.0.30319
. ตอนนี้เขียนคำสั่งต่อไปนี้:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe -i C:\TimerService\TimerService\bin\Debug\TimerService.exe
หมายเหตุ: -i ใช้สำหรับติดตั้งบริการและ -u สำหรับ Unsinstall
หลังจาก -i ตั้งค่าการเขียนเส้นทางที่คุณต้องการติดตั้งบริการของคุณ
ตอนนี้เขียนคำสั่งใน CommandPromt ดังนี้:
C:\TimerService\TimerService\bin\Debug>net start service_name
หมายเหตุ:ใช้stop
สำหรับหยุดการบริการ
ViewEventLog.exe
ตอนนี้เปิด เลือกบันทึก Windows> แอปพลิเคชัน ที่นั่นคุณสามารถตรวจสอบบันทึกของบริการโดยเริ่มและหยุดบริการ
หากคุณใช้ Powershell และคุณต้องการติดตั้งบริการ. NET คุณสามารถใช้โมดูลบริการติดตั้งได้ มันเป็นเสื้อคลุมสำหรับเครื่องมือ InstalUtil
มันแสดงคำสั่ง 3
รหัสของโมดูลนี้สามารถดูได้ที่นี่
รหัสต่อไปนี้ติดตั้งและถอนการติดตั้งบริการ
เปิดพรอมต์คำสั่งและเรียกใช้โปรแกรมในฐานะผู้ดูแลระบบแล้วใช้คำสั่งด้านล่างแล้วกด Enter
วากยสัมพันธ์
ติดตั้ง
C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe + Your copied path + \your service name + .exe
เช่น: พา ธ ของเรา InstallUtil.exe C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe
เพื่อถอนการติดตั้ง
C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe -u + Your copied path + \your service name + .exe
เช่น: พา ธ ของเรา InstallUtil.exe -u C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe
สำหรับความช่วยเหลือเพิ่มเติมคุณสามารถดูลิงค์ต่อไปนี้: โปรแกรมตัวอย่าง
ทำตามขั้นตอนเมื่อปรับใช้บริการ Windows ไม่เสียเวลา
1- เรียกใช้พรอมต์คำสั่งโดยผู้ดูแลระบบที่ถูกต้อง
2- ประกันเกี่ยวกับโหมดการปล่อยเมื่อทำการคอมไพล์ใน IDE ของคุณ
3- ให้ประเภทกับตัวติดตั้งโครงการของคุณในมุมมองออกแบบ
4- เลือกประเภทการตรวจสอบความถูกต้องตามกรณี
5- ประกันเกี่ยวกับการพึ่งพาซอฟต์แวร์: หากคุณใช้ใบรับรองติดตั้งอย่างถูกต้อง
6- ไปที่คอนโซลของคุณเขียนสิ่งนี้:
C:\Windows\Microsoft.NET\Framework\yourRecentVersion\installutil.exe c:\yourservice.exe
มีอาร์กิวเมนต์ -i ที่ซ่อนอยู่ก่อนเส้นทาง exe ที่-i c:\
คุณสามารถใช้-u
สำหรับการถอนการติดตั้ง
7 - ดูเส้นทาง. exe ของคุณเพื่อดูไฟล์บันทึก คุณสามารถใช้ตัวแสดงเหตุการณ์เพื่อสังเกตในคุณสมบัติ
เปิดพรอมต์คำสั่งสำหรับนักพัฒนาในฐานะผู้ดูแลระบบและไปที่
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
ตอนนี้ใช้เส้นทางที่เป็นของคุณ.exe
มี
InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"
เมื่อเวอร์ชันการประกอบและการตั้งค่าโครงการ Visual Studio Biuld ของคุณบน dot net 2 หรือ 4 ติดตั้งด้วยเวอร์ชันเดียวกัน
บริการติดตั้งด้วยinstallutil
รุ่นเดียวกันนั้น
ถ้าสร้างใน dot net 4
ชนิด c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe
ถ้าสร้างใน dot net 2
ชนิด c:\windows\microsoft.net\framework\v2.0.11319\installutil.exe
1. จากเมนู Start เลือกไดเรกทอรี Visual Studio จากนั้นเลือก Developer Command Prompt สำหรับ VS
2. พรอมต์คำสั่งสำหรับนักพัฒนาสำหรับ Visual Studio จะปรากฏขึ้น
3. เข้าถึงไดเรกทอรีที่มีไฟล์ปฏิบัติการของโครงการของคุณ
4. เรียกใช้ InstallUtil.exe จากพรอมต์คำสั่งพร้อมกับปฏิบัติการของโครงการเป็นพารามิเตอร์
คุณควรเปิดพรอมต์คำสั่งไปที่
C:\windows\microsoft.net\framework\v4.0.30319\InstallUtil.exe -i ".EXE file of window service"
เปิดพรอมต์คำสั่งในฐานะผู้ดูแลระบบไปที่โฟลเดอร์ที่คุณ.exe
อาศัย เพื่อติดตั้งExe
เป็นบริการ
D:\YourFolderName\YourExeName /i
/u
การถอนการติดตั้งการใช้งาน