c# - probar - no se puede iniciar un servicio desde la linea de comandos o un depurador dell
Error de inicio del servicio de Windows: no se puede iniciar el servicio desde la lĂnea de comando o depurador (6)
Esta pregunta ya tiene una respuesta aquí:
Hola, estoy recibiendo este error
No se puede iniciar el servicio desde la línea de comandos o el depurador. Primero se debe instalar un servicio winwows (usando installutil.exe) y luego se inició con ServerExplorer, la herramienta administrativa de servicios de Windows o el comando NET START.
y no entiendo por qué empeño este error. Y aquí está mi código:
{
string Hash = "";
string connectionstring = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
SqlConnection myConnection = new SqlConnection(connectionstring);
SqlCommand myCommand = new SqlCommand("GetNullHash", myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
myConnection.Open();
SqlDataReader rdr = myCommand.ExecuteReader();
while (rdr.Read())
{
string filename = @"//" + rdr.GetString(3);
filename = System.IO.Path.Combine(filename, rdr.GetString(2));
filename = System.IO.Path.Combine(filename, rdr.GetString(1));
Hash = rdr.GetString(0);
Hash = computeHash(filename);
}
myConnection.Close();
return Hash;
}
Goto App.config
Encontrar
<setting name="RunAsWindowsService" serializeAs="String">
<value>True</value>
</setting>
Establecer como Falso
Mira este video , tuve la misma pregunta. Él le muestra cómo depurar el servicio también.
Aquí están sus instrucciones usando la plantilla básica del servicio de Windows C # en Visual Studio 2010/2012.
Agregue esto al archivo Service1.cs:
public void onDebug()
{
OnStart(null);
}
Cambia su Main () para llamar a su servicio de esta manera si se encuentra en la configuración de solución activa DEBUG.
static void Main()
{
#if DEBUG
//While debugging this section is used.
Service1 myService = new Service1();
myService.onDebug();
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
#else
//In Release this section is used. This is the "normal" way.
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
#endif
}
Tenga en cuenta que, si bien esta es una excelente manera de depurar su servicio. No llama a OnStop()
menos que lo llame explícitamente de la manera en que llamamos OnStart(null)
en la función onDebug()
.
Para instalar Open CMD y escriba {YourServiceName} -i
una vez que {YourServiceName} -i
instalado escriba en NET START {YourserviceName}
para iniciar su servicio
para desinstalar
Para desinstalar Open CMD y escribir en NET STOP {YourserviceName}
una vez detenido, escriba {YourServiceName} -u
y debe desinstalarlo
Su código no tiene nada que ver con la instalación del servicio, no es el problema.
Para probar el servicio, debe instalarlo como se indica.
Para obtener más información sobre la instalación de su servicio: instalación y desinstalación de servicios
Sugeriré que se cree un proyecto de instalación por las razones mientras se implementa esto parece la mejor conveniencia, no hay dolores de cabeza de copiar archivos manualmente. Siga el tutorial de creación de configuración de servicio de Windows y sepa cómo crearlo. Y esta instancia es para vb.net pero es lo mismo para cualquier tipo.
Para instalar tu servicio manualmente
Para instalar o desinstalar el servicio de Windows manualmente (que se creó con .NET Framework), use la utilidad InstallUtil.exe
. Esta herramienta se puede encontrar en la siguiente ruta (use el número de versión del marco apropiado).
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe
Instalar
installutil yourproject.exe
Para desinstalar
installutil /u yourproject.exe
Ver: Cómo: instalar y desinstalar servicios (msdn)
Instalar el servicio programáticamente
Para instalar el servicio mediante programación utilizando C #, consulte la siguiente clase ServiceInstaller (c-sharpcorner) .