79 votes

Impossible d'installer le service Windows

J'ai créé un service de fenêtre très simple en utilisant visual studio 2010 et .NET 4.0.

Ce service n'a aucune fonctionnalité ajoutée par rapport au projet de service Windows par défaut, si ce n'est l'ajout d'un programme d'installation.

Si je lance "installutil.exe appName.exe" sur ma boîte de développement ou sur d'autres machines Windows 2008 R2 dans notre domaine, le service Windows s'installe sans problème.

Lorsque j'essaie de faire la même chose sur le site de notre client, l'installation échoue avec l'erreur suivante.

Microsoft (R) .NET Framework Installation utility Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Exception occurred while initializing the installation:
System.IO.FileLoadException: Could not load file or assembly 'file:///C:\TestService\WindowsService1.exe' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515).

Cette solution ne comporte qu'un seul projet et aucune dépendance n'a été ajoutée.

Je l'ai essayé sur plusieurs machines dans notre environnement et deux chez nos clients. Les machines sont toutes des Windows 2008 R2, toutes deux nouvellement installées. L'une des machines a juste .net 2.0 et .net 4.0. L'autre a .net 2, 3, 3.5 et 4.

Je suis administrateur local sur chacune des machines.

J'ai également essayé l'installateur 64bit mais j'ai obtenu l'erreur suivante, donc je pense que l'installateur 32bit est celui à utiliser. System.BadImageFormatException

Tout conseil serait apprécié. Merci de votre compréhension.

0 votes

Attendez... .NET 4 n'inclut-il pas déjà .NET 2/3/3.5 ?

0 votes

Oui, le service avec tous les cadres installés dans un autre but, j'expliquais juste que le problème semble être lié au domaine.

291voto

flixfe Points 1195

Une autre raison de cette erreur peut être que vous avez copié votre programme à partir d'une source que Windows considère comme non fiable. Vous pouvez débloquer l'assemblage en cliquant sur "débloquer" après avoir fait un clic droit et sélectionné les propriétés du fichier.

12 votes

Cela a fonctionné pour moi et répond à la question plus directement que la réponse "essayez un projet de configuration". Les deux fonctionnent, mais il est plus probable que ce soit la réponse à la question initiale.

5 votes

Merci de votre attention ! Je ne pense pas que j'aurais pu arriver à cette conclusion. J'aurais aimé qu'il y ait une meilleure raison que "l'opération n'est pas prise en charge"

11 votes

S'il ne se débloque pas et qu'il se trouve dans le dossier /Program Files, déplacez le fichier .exe dans votre dossier documents, débloquez-le, puis déplacez-le à nouveau. L'explorateur Windows n'élève pas les demandes de déblocage dans les dossiers /Program Files.

10voto

Brandon Ward Points 78

Ce problème m'est apparu parce que j'essayais d'installer le service à partir d'un emplacement réseau. En copiant le fichier service.exe sur la machine locale avant d'utiliser installutil, j'ai résolu le problème et le service s'est installé avec succès.

2 votes

Sur la base de la question stackoverflow.com/questions/8524423/ On peut également définir la durée d'exécution loadFromRemoteSources à true dans le fichier machine.config.

0 votes

J'ai dû aller dans les propriétés de chaque fichier et "débloquer" le fichier.

2voto

user437631 Points 418

N'oubliez pas de voter... Essayez le SC comme suit : 1. ouvrir la ligne de commande [...] sc create ServiceName BinPat

0 votes

T

0 votes

I

1voto

OnceBitten Points 11

J'ai aussi été confronté au même problème. Dans mon cas, j'ai été le déploiement de la nouvelle version des services publics , j'ai copié le nouvel exe , installog fichiers et ensuite essayer de désinstaller le utils.

J'ai recopié l'ancienne version , la désinstallation de la utils , copié la nouvelle version et installé de nouveau. De toute façon, c'est la suite logique je devrais avoir suivi la première place.

-2voto

Stefan P. Points 5051

Vous pouvez essayer de faire un Projet d'Installation de votre service et exécutez le fichier MSI sur ce serveur.

12 votes

Il s'agit plus d'une solution de contournement que d'une véritable solution au problème.

10 votes

Voir la réponse votée plus bas qui devrait être marquée comme la solution

1 votes

Cette fonctionnalité n'existe pas dans VS 2013

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X