salut je reçois cette erreur
Impossible de démarrer le service à partir de la ligne de commande ou du débogueur. Un service Winwows doit d'abord être installé (à l'aide de installutil.exe), puis démarré à l'aide de ServerExplorer, de l'outil Windows Services Afministrative ou de la commande NET START.
et je ne comprends pas pourquoi im obtenir cette erreur. Et voici mon code:
{
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;
}
Regardez cette vidéo , j'avais la même question. Il vous montre également comment déboguer le service.
Voici ses instructions à l'aide du modèle de service Windows C # de base dans Visual Studio 2010/2012.
Vous ajoutez ceci au fichier Service1.cs:
public void onDebug()
{
OnStart(null);
}
Vous modifiez votre Main () pour appeler votre service de cette manière si vous êtes dans la configuration de la solution active 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
}
N'oubliez pas qu'il s'agit d'un moyen génial de déboguer votre service. Il n’appelle pas OnStop()
à moins que vous ne l’appeliez explicitement de la même manière que nous avons appelé OnStart(null)
dans la fonction onDebug()
.
Pour installer votre service manuellement
Pour installer ou désinstaller manuellement le service Windows (créé à l'aide de .NET Framework), utilisez l'utilitaire InstallUtil.exe
. Cet outil se trouve dans le chemin suivant (utilisez le numéro de version du framework approprié).
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe
À installer
installutil yourproject.exe
Pour désinstaller
installutil /u yourproject.exe
Voir: Comment: installer et désinstaller des services (msdn)
Installer le service par programme
Pour installer le service par programme en utilisant C #, voir la classe suivante ServiceInstaller (c-sharpcorner).
Votre code n'a rien à voir avec l'installation du service, ce n'est pas le problème.
Afin de tester le service, vous devez l’installer comme indiqué.
Pour plus d'informations sur l'installation de votre service: Installation et désinstallation de services
Je suggérerai de créer un projet de configuration pour les raisons lors du déploiement, ce qui semble être la meilleure solution, aucun problème de copie manuelle de fichiers. Suivez le tutoriel de création de service Windows et vous saurez le créer. Et cette instance est pour vb.net mais c'est la même pour tous les types.
Pour installer Open CMD et taper {YourServiceName} -i
Une fois installé, taper NET START {YourserviceName}
Pour démarrer votre service.
désinstaller
Pour désinstaller Open CMD et taper NET STOP {YourserviceName}
Une fois arrêté taper {YourServiceName} -u
Et il devrait être désinstallé