He creado un servicio C# utilizando la plantilla VS2005. Funciona bien, sin embargo, la descripción del servicio está en blanco en el applet de control de Servicios de Windows.¿Cuál es la mejor manera de configurar una descripción del servicio de Windows en .net
Respuesta
Crear una ServiceInstaller y establecer la descripción
private System.ServiceProcess.ServiceInstaller serviceInstaller =
new System.ServiceProcess.ServiceInstaller();
this.serviceInstaller.Description = "Handles Service Stuff";
También se podría, crear un ServiceInstaller y en la ventana de propiedades del instalador del Service verá una descripción de la propiedad se puede establecer. Si no quieres codificarlo.
Estoy bastante seguro de haber intentado configurar cada propiedad de descripción en el instalador de servicios y servicios y ninguno de ellos parecía funcionar. Tal vez me perdí esta. –
Para aclarar sobre la manera de lograr esto sin usar código:
Añadir un instalador de servicio a su proyecto como se describe aquí: http://msdn.microsoft.com/en-us/library/ddhy0byf%28v=vs.80%29.aspx
Abrir el instalador (por ejemplo ProjectInstaller.cs) en Diseño ver.
Haz clic en el componente del instalador del servicio (por ejemplo, serviceInstaller1) o haz clic con el botón derecho en él y selecciona Propiedades.
En el panel Propiedades, establezca la Descripción y/o DisplayName (aquí también es donde establece StartType, etc.) Es probable que todo lo que desea cambiar sea la descripción, aunque si desea dar un DisplayName ligeramente más legible para los humanos (la primera columna en el administrador de servicios) también puede hacerlo.
Si lo desea, abra el archivo del diseñador generado automáticamente (por ejemplo, ProjectInstaller.Designer.cs) para verificar que las propiedades se hayan configurado correctamente.
Cree la solución e instálela usando
installutil.exe
o por otros medios.
Después de crear el proyecto de instalación de servicio en VS2010, es necesario agregar un reemplazo para el método Instalar en la clase creada por VS para crear la entrada del registro para su descripción del servicio.
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
using System.ServiceProcess;
using Microsoft.Win32;
namespace SomeService
{
[RunInstaller(true)]
public partial class ProjectInstaller : System.Configuration.Install.Installer
{
public ProjectInstaller()
{
InitializeComponent();
}
/// <summary>
/// Overriden to get more control over service installation.
/// </summary>
/// <param name="stateServer"></param>
public override void Install(IDictionary stateServer)
{
RegistryKey system;
//HKEY_LOCAL_MACHINE\Services\CurrentControlSet
RegistryKey currentControlSet;
//...\Services
RegistryKey services;
//...\<Service Name>
RegistryKey service;
// ...\Parameters - this is where you can put service-specific configuration
// Microsoft.Win32.RegistryKey config;
try
{
//Let the project installer do its job
base.Install(stateServer);
//Open the HKEY_LOCAL_MACHINE\SYSTEM key
system = Registry.LocalMachine.OpenSubKey("System");
//Open CurrentControlSet
currentControlSet = system.OpenSubKey("CurrentControlSet");
//Go to the services key
services = currentControlSet.OpenSubKey("Services");
//Open the key for your service, and allow writing
service = services.OpenSubKey("MyService", true);
//Add your service's description as a REG_SZ value named "Description"
service.SetValue("Description", "A service that does so and so");
//(Optional) Add some custom information your service will use...
// config = service.CreateSubKey("Parameters");
}
catch (Exception e)
{
throw new Exception(e.Message + "\n" + e.StackTrace);
}
}
}
}
http://msdn.microsoft.com/en-us/library/microsoft.win32.registrykey.aspx
http://www.codeproject.com/KB/dotnet/dotnetscmdescription.aspx
- 1. Establecer la descripción del servicio de Windows en C++
- 2. ¿Cuál es la mejor manera de obtener una descripción del sitio web, en Python?
- 3. ¿Cuál es la mejor manera de comparar programas en Windows?
- 4. Cuál es la mejor manera de cambiar las credenciales de un servicio de Windows usando C#
- 5. ¿Cuál es la mejor manera de configurar un entorno de desarrollo PHP en una Mac?
- 6. .Net Deep cloning: ¿cuál es la mejor manera de hacerlo?
- 7. La mejor manera de que un servicio .Net de Windows informe un error al usuario
- 8. ¿Cuál es la mejor manera de hacer una solicitud de servicio web POST en Grails?
- 9. ¿Cuál es la mejor manera de implementar una aplicación Pylons?
- 10. ¿Cuál es la mejor manera de transferir datos de python a otra aplicación en Windows?
- 11. ¿Cuál es la mejor manera de hacer GUI en Clojure?
- 12. ¿Cuál es la mejor manera de analizar una gramática simple?
- 13. .NET: ¿Cuál es la mejor manera de implementar un controlador de excepciones "catch all"
- 14. La mejor manera de configurar programáticamente adaptadores de red en .NET
- 15. ¿Cuál es la mejor manera de representar una lista inmutable en .NET?
- 16. ¿Cuál es la mejor manera de mantener vivo el control de socket en .NET?
- 17. ¿Cuál es la mejor manera de implementar una arquitectura RESTful en .NET hoy?
- 18. La mejor manera de burlarse del servicio web de Java
- 19. ¿Cuál es la mejor manera de almacenar cadena de conexión en DLL de .NET?
- 20. ¿Cuál es la mejor manera de perfilar una aplicación Sinatra?
- 21. ¿Cuál es la mejor forma de almacenar la configuración del usuario para una aplicación .NET?
- 22. Cuál es la mejor manera de depurar un programa de servicio de Windows en Visual Studio 2008
- 23. ¿Cuál es la mejor manera de reemplazar remote.origin.url en Git?
- 24. ¿Cuál es la mejor manera de calcular el tamaño de un directorio en VB .NET?
- 25. ¿Cuál es la mejor manera de incrementar una enumeración?
- 26. ¿Cuál es la mejor manera de dibujar en la consola?
- 27. ¿Cuál es la mejor manera de identificar archivos de texto codificados en Unicode en Windows?
- 28. Cuál es la mejor manera de obtener la impresora predeterminada en .NET
- 29. ¿Cuál es la mejor manera de declarar una variable global?
- 30. ¿Cuál es la mejor manera de deducir una mesa?
sólo para añadir a esto, también se puede establecer serviceInstaller.DisplayName = "Mejor Display Name"; – CapBBeard
exxelent. Estaba pensando que algunos códigos serían necesarios ah-la esta solución ... http://www.codeproject.com/KB/dotnet/dotnetscmdescription.aspx ¿Quizás esto solo sea necesario para VS2003? –