Windows komut istemi (Visual Studio komut istemi değil) kullanarak bir Windows hizmeti yüklemek istiyorum.
Bunu nasıl yaparım?
Windows komut istemi (Visual Studio komut istemi değil) kullanarak bir Windows hizmeti yüklemek istiyorum.
Bunu nasıl yaparım?
Yanıtlar:
.Net klasörünüzdeki installutil.exe dosyasına gidin (örneğin .net 4 için C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319) ve hizmetinizi yüklemek için aşağıdaki gibi kullanın:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"
SC Create komutunda yanlış bir şey yok. Sadece doğru argümanları bilmeniz gerekir:
SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"
sc
komutu var, ancak farklı bir şey, hizmetleri kaydetmek için kullanılamaz.
Dizinin adının benzer bir alanı c:\program files\abc 123
varsa, yolun etrafında çift tırnak kullanmanız gerekir.
installutil.exe "c:\program files\abc 123\myservice.exe"
Aşağıdaki gibi bir bat dosyası ayarlarsanız işleri daha kolay hale getirir,
Örneğin bir hizmet yüklemek için bir "myserviceinstaller.bat" ve " Yönetici Olarak Çalıştır " oluşturun
@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
hizmeti kaldırmak,
İnstallutil komutuna bir -u ekleyin .
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "C:\Services\myservice.exe"
Aşağıdakileri yapın:
c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
Yönetici haklarıyla açmanız önemlidir, aksi takdirde anlamlı olmayan hatalar bulabilirsiniz. Herhangi bir şey alırsanız, önce yönetici haklarıyla açıp açmadığınızı kontrol edin!
Yönetici haklarıyla açmak için 'Komut İstemi'ni sağ tıklayın ve' Yönetici olarak çalıştır'ı seçin.
Kurulum Hizmeti: -
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe"
"C:\Services\myservice.exe"
Unice yükleyin Sevice: -
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"
Bu iş parçacığına bir nokta daha eklemeliyim. 64-bit
Montajların sürümünü kurmak / kaldırmak 64-bit
için aracın sürümünü kullanmalısınız . Bir hizmeti yüklemek için komut şu şekilde olmalıdır:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe"
"C:\YourFolder\YourService.exe"
ve komutu kaldırmak için:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u
"C:\YourFolder\YourService.exe"
Bir oluşturma *.bat
windows servis ait yanında dosyayı exe
dosyası yüklemek için aşağıdaki içerikle:
CLS
ECHO Installing My Windows Service
START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"
Bir oluşturma *.bat
windows servis ait yanında dosyayı exe
dosyası kaldırma için aşağıdaki içerikle:
CLS
ECHO Uninstalling My Windows Service
START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"
Windows hizmetinizi yüklemek veya kaldırmak için her bat
dosyayı Yönetici olarak çalıştırın .
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
klasöre gitmek içininstallutil C:\ProjectFolder\bin\Debug\MyProject.exe
Not: Kaldırmak için:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe
Visual studio'yu açın ve sekmedeki Windows Service
şablonu seçerek yeni proje seçin Windows Desktop
. Aşağıdaki kodu service_name.cs dosyanıza kopyalayın.
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 dosyasına sağ tıklayın ve servis tasarımcısını açın. sağ tıklayın ve seçin Add Installer
. sağ tıklayın serviceProcessInstaller1
ve özellik değerini olarak Account
olarak User
değiştirinLocal System
.
static void main
Yöntemi Program.cs
dosyadan kaldır . Daha sonra projenizi kaydedin ve oluşturun.
NOT: git bin\Ddebug
proje klasörün klasör. Daha sonra service_name.exe
dosyanızın özelliklerini açın . Compatibility
Sekmeye git . Sonra tıklayın Change Settings For All Users
.
Seçeneği seçin Run this program as an administrator
.
Şimdi CommandPromt'u Yönetici olarak açmalısınız. Açtıktan sonra dizini InstallUtil.exe
dosyanızın bulunduğu yere ayarlayın. örneğin: C:\Windows\Microsoft.NET\Framework64\v4.0.30319
. şimdi aşağıdaki komutu yazın:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe -i C:\TimerService\TimerService\bin\Debug\TimerService.exe
Not: -i kurulum içindir ve -u Kurulumdan Çıkarma içindir.
-i sonrası servisinizi kurmak istediğiniz yolu yazın.
şimdi komutu aşağıdaki gibi CommandPromt'a yazın:
C:\TimerService\TimerService\bin\Debug>net start service_name
Not:stop
Hizmeti durdurmak için kullanın .
Şimdi aç ViewEventLog.exe
. Windows Günlükleri> Uygulama'yı seçin. Burada, hizmeti başlatıp durdurarak Hizmet günlüğünüzü kontrol edebilirsiniz.
Powershell kullanıyorsanız ve .NET hizmetini yüklemek istiyorsanız Install-Service'i kullanabilirsiniz. modülünü kullanabilirsiniz. InstalUtil aracı için bir sarıcıdır.
3 komut sunar
Bu modülün kodu buradan görüntülenebilir
aşağıdaki kodu kullanarak Hizmeti yükleyip kaldırabilir,
Komut istemini açın ve programı yönetici olarak çalıştırın ve aşağıdaki komutu çalıştırın ve enter tuşuna basın.
Sözdizimi
Yüklemek
C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe + Your copied path + \your service name + .exe
örneğin: Yolumuz InstallUtil.exe C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe
Kaldırmak için
C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe -u + Your copied path + \your service name + .exe
örneğin: Yolumuz InstallUtil.exe -u C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe
daha fazla yardım için aşağıdaki bağlantıyı görebilirsiniz: örnek program
Windows Hizmetini dağıtırken adımları izleyin, zaman kaybetmeyin
1- Yönetici hakkı tarafından komut istemini çalıştırın
2- IDE'nizde derleme yaparken serbest bırakma modundan emin olun
3- Proje yükleyicinize tasarım görünümünde bir tür verin
4- Doğrulama türünü duruma göre seçin
5- Yazılım bağımlılıklarından emin olun: Sertifika kullanıyorsanız, doğru şekilde kurun
6- Konsolunuza gidin şunu yazın:
C:\Windows\Microsoft.NET\Framework\yourRecentVersion\installutil.exe c:\yourservice.exe
kaldırmak için -i c:\
kullanabileceğiniz exe yolundan önce gizli bir -i argümanı var-u
7- Günlük dosyasına bakmak için .exe yolunuza bakın. Özelliği gözlemlemek için olay görüntüleyiciyi kullanabilirsiniz
Geliştirici komut istemini Yönetici olarak açın ve şuraya gidin:
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
Şimdi yolunu .exe
orada olduğun yerde kullan
InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"
derleme sürümünüz ve Visual studio projeniz Biuld dot net 2 veya 4 üzerinde ayarlandığında aynı sürümle yüklendiğinde.
installutil
aynı sürümle hizmeti yükle
nokta ağ 4 inşa eğer
tip c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe
nokta ağı 2'de inşa edildiyse
tip c:\windows\microsoft.net\framework\v2.0.11319\installutil.exe
Başlat menüsünden Visual Studio dizinini seçin, ardından VS için Geliştirici Komut İstemi'ni seçin.
Visual Studio için Geliştirici Komut İstemi belirir.
Projenizin derlenmiş yürütülebilir dosyasının bulunduğu dizine erişin.
Komut isteminden InstallUtil.exe dosyasını projenizin yürütülebilir parametresi olarak çalıştırın
Komut istemini açmalısınız,
C:\windows\microsoft.net\framework\v4.0.30319\InstallUtil.exe -i ".EXE file of window service"
Komut istemini yönetici olarak açın, klasörünüzün bulunduğu Klasörünüze gidin .exe
. Yüklemek için Exe
hizmet olarak
D:\YourFolderName\YourExeName /i
Kaldırmak için kullanın /u
.