Visual Studio Express 2012'yi kullanarak, Topshelf (Sürüm 3.1.107.0) kullanarak bir konsol uygulaması oluşturdum. Uygulama bir konsol uygulaması olarak çalışır, ancak bir hizmet olarak nasıl yükleneceğini anlayamıyorum. Projeyi Visual Studio (Build, Publish) içinden yayımladım, bir komut istemini Yönetici olarak başlattım, uygulamanın yayınlandığı klasöre yönlendirdim ve setup.exe -install komut isteminden çalıştırın. Uygulama yüklü ve çalışır, ancak bir konsol uygulaması olarak, bir Windows hizmeti değil. Burada neyi özlüyorum? TopShelf aşina olmayabilir edenler için Bir Windows hizmeti olarak bir Topshelf uygulamasını yükleme
, bu Net için bir Windows Hizmet çerçeve ve yukarıda tarif senaryoyu kolaylaştırmak gerekiyordu - bir Windows Hizmeti olarak dağıtmak, bir konsol uygulaması olarak geliştirmek ve hata ayıklama. http://docs.topshelf-project.com/en/latest/index.html adresindeki belgelere bakın.cevap
Hizmeti yüklemek için service.exe install
numaralı telefonu çalıştırın.
Daha fazla bilgi için Topshelf Command Line Reference belgelerine bakın.
Teşekkür ederiz! Hatam, ben bin \ release klasöründe servicename.exe dosyasını yüklemiş olsaydı, uygulamayı yayımladığımda oluşturulan setup.exe'yi yüklemeye çalışıyordum! Doh! Şimdi çalışıyor. –
- başlatın Visual Studio ve yeni bir C# konsol-Uygulama referanslara
- sağ tıklayın oluşturmak ve go Nuget-Paketleri
- İndir yönetmek ve uygulamaya aşağıda Kodu yapıştırın
- Nuget aracılığıyla Topshelf yüklemeye ve tüm ithalatı içerir.
- “Debug” modundan “Release” seçeneğine geçin ve uygulamayı oluşturun. Yönetici olarak
- Run
cmd.exe
gidin konsol Run
.\myConsoleApplication\bin\Release\
- için komut
.\myConsoleApplication.exe install
Çalıştır komutunu
.\myConsoleApplication.exe start
Kodu:
using System;
using System.Threading;
using Topshelf;
using Topshelf.Runtime;
namespace MyConsoleApplication
{
public class MyService
{
public MyService(HostSettings settings)
{
}
private SemaphoreSlim _semaphoreToRequestStop;
private Thread _thread;
public void Start()
{
_semaphoreToRequestStop = new SemaphoreSlim(0);
_thread = new Thread(DoWork);
_thread.Start();
}
public void Stop()
{
_semaphoreToRequestStop.Release();
_thread.Join();
}
private void DoWork()
{
while (true)
{
Console.WriteLine("doing work..");
if (_semaphoreToRequestStop.Wait(500))
{
Console.WriteLine("Stopped");
break;
}
}
}
}
public class Program
{
public static void Main()
{
HostFactory.Run(x =>
{
x.StartAutomatically(); // Start the service automatically
x.EnableServiceRecovery(rc =>
{
rc.RestartService(1); // restart the service after 1 minute
});
x.Service<MyService>(s =>
{
s.ConstructUsing(hostSettings => new MyService(hostSettings));
s.WhenStarted(tc => tc.Start());
s.WhenStopped(tc => tc.Stop());
});
x.RunAsLocalSystem();
x.SetDescription("MyDescription");
x.SetDisplayName("MyDisplayName");
x.SetServiceName("MyServiceName");
});
}
}
}
klasörüne atın ve komutu çalıştırın:
AppName.exe install
Bir Yöneticisi olarak komut istemi çalıştırmalısınız.
3 yıl geç .... hiçbir ekstra değer eklemiyor –
Bu eski bir sorudur, ancak bazı komut satırı seçenekleri eklemek istiyorum.
MyTopShelfImplementation.exe -servicename "MyServiceName" -displayname yüklemek "Benim Görüntü Adı"
başlamak --autostart. --autostart
pencereleri yeniden başlatıldığında içindir.
başlangıç
sen Şimdi
yükledikten sonra HEMEN hizmeti başlamak içindir, "isimler" de
HostFactory.Run(x => { ////x.SetDescription("My Description"); x.SetDisplayName("My Display Name"); x.SetServiceName("My Service Name"); ////x.SetInstanceName("My Instance");
Yani eğer kod
içinde belirtebilirsiniz. exe, konsol uygulaması olarak (veya windows servisi olarak) bu değerleri kodda ayarlama ve/veya komut satırından geçirme gibi bazı kombinasyonlar olabilir.Kodda "adlar" ayarlamamış olsaydınız VE komut satırı arşivlerinde "adlar" ı geçmediyseniz, konsol davranışı alırsınız.
- 1. Topshelf etkin Windows hizmeti, hata ayıklanmayacaktır
- 2. Bir CLI Uygulamasını Windows Hizmeti olarak nasıl çalıştırabilirim?
- 3. powershell kullanarak bir topshelf servisi yükleme
- 4. Python Windows Hizmeti olarak çalıştırılabilir
- 5. Redis'i windows hizmeti olarak yükleyin
- 6. Bir Java Uygulamasını * nix Daemon veya Windows Hizmeti olarak çalıştırmak için En İyi Yöntem?
- 7. Bir konsol uygulamasını bir windows uygulamasına dönüştürmek
- 8. windows hizmeti
- 9. Bir J2EE/Grails uygulamasını Windows masaüstü uygulaması olarak çalıştırıyor
- 10. Windows hizmeti olarak da yüklenebilen bağımsız bir Delphi uygulaması
- 11. Bir ServiceStack konsol projesini Windows Hizmeti olarak nasıl çalıştırırım?
- 12. C# Windows Uygulamasında bir Web Hizmeti Kullanın
- 13. Windows uygulama dizininde jre yerel olarak yükleme
- 14. Bir İşlem İzleyicisi Tasarlama Windows Hizmeti
- 15. Windows hizmeti/ASP sitesi/başka bir şey?
- 16. WCF Windows Service hizmeti olarak hizmet (Windows 7)
- 17. TopShelf tarafından tanınmayan CommandLine Argümanlarını nasıl kullanabilirim?
- 18. Windows Hizmeti olarak MSMQ için bir C# Dinleyici Hizmeti Nasıl Oluşturulur
- 19. EXE veya Windows hizmeti olarak dağıtılan bağımsız bir C# web hizmeti oluşturmak mümkün mü?
- 20. Kendi geliştirdiğimiz bir Windows Service yükleme
- 21. Topshelf vs sc.exe vs Windows Service proje türü
- 22. Windows Hizmeti, Kurulum projesi
- 23. Bir Windows Hizmeti için bir MSI yükleyici oluşturma
- 24. Windows Phone 8.1 uygulamasını yayınlayın
- 25. Windows Service'ten GUI Uygulamasını Başlatmak - Pencere Görünmüyor
- 26. Windows hizmeti adlandırılmış semaforu göremiyor
- 27. Bir iPad uygulamasını programlı olarak nasıl kapatabilirim?
- 28. Ses Tanıma Bir arka plan hizmeti olarak
- 29. Android hizmeti bir tekil olarak çalışmıyor
- 30. Sistem yeniden başlatıldığında Windows mağaza uygulamasını otomatik olarak başlat?
'Windows hizmetini çalıştırılabilir dosyadan oluştur' sorusuna baktım. Topshelf ile ilgili olmadığı için benim sorum ile alakalı görünmüyor. –
Evet, Topshelf'in yaptığı şey, ve evet, onların belgelerini araştırdım. –
Peki, ne buldun? Görünüşe göre, özellikle de "Uygulama yüklenir ve çalışır, ancak bir konsol uygulaması, bir Windows hizmeti değil" _ belgelerini izleyerek sorun yaşarsınız. Windows 'Services MMC ek bileşeninde yüklü hizmet görüyor musunuz? – CodeCaster