Не удается установить службу Windows - PullRequest
72 голосов
/ 10 ноября 2010

Я создал очень простую оконную службу с использованием Visual Studio 2010 и .N ُ ET 4.0.

Эта служба не имеет функциональности, добавленной из проекта службы Windows по умолчанию, за исключением добавления установщика.

Если я запускаю «installutil.exe appName.exe» на своем компьютере разработчика или других компьютерах с Windows 2008 R2 в нашем домене, служба Windows устанавливается без проблем.

Когда я пытаюсь сделать то же самое на нашемКлиентский сайт не может быть установлен со следующей ошибкой.

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).

Это решение имеет только 1 проект и никаких добавленных зависимостей.

Я пробовал его на нескольких машинах в нашей среде и на двух наших клиентах.Все машины Windows 2008 R2, обе свежие установки.Одна машина имеет только .net 2.0 и .net 4.0.Другие .net 2, 3, 3.5 и 4.

Я являюсь локальным администратором на каждой из машин.

Я также попробовал 64-битный установщик, но получаю следующую ошибку, поэтому ядумаю, что 32-битный - тот, который нужно использовать.System.BadImageFormatException

Любое руководство будет оценено.Спасибо.

Ответы [ 11 ]

271 голосов
/ 09 марта 2011

Другая причина этой ошибки может заключаться в том, что вы скопировали свою программу из источника, который Windows считает ненадежным. Вы можете разблокировать сборку, нажав «разблокировать» после щелчка правой кнопкой мыши и выбора свойств файла.

14 голосов
/ 22 июля 2016

Необходимо разблокировать файлы. или хотя бы это то, что исправило мое.

Чтобы выполнить «массовую» разблокировку в Powershell

get-childitem *.* | Unblock-File 

или в DOS:

FOR %a in (*.*) do (echo.>%a:Zone.Identifier)
9 голосов
/ 02 февраля 2012

Эта проблема возникла у меня, потому что я пытался установить службу из сетевого расположения. Скопировав service.exe на локальный компьютер перед использованием installutil, он устранил мою проблему и служба была успешно установлена.

7 голосов
/ 21 февраля 2017

Когда мы копируем исполняемый файл с другого компьютера, Windows помечает на них флажок для защиты. Щелкните правой кнопкой мыши по исполняемому файлу и в свойствах нажмите Разблокировать .Это очистит флаг, и исполняемый файл службы будет установлен.

2 голосов
/ 10 ноября 2010

не забудьте проголосовать ... Попробуйте СЦ следующим образом: 1. открыть командную строку 2. напишите ниже- sc create ServiceName BinPath = "ExePath". отчет о результатах ...

1 голос
/ 02 августа 2016

Вы можете использовать эту команду в командной строке разработчика, запустить администратор

installutil C:\...\MyService\bin\Debug\MyService.exe
1 голос
/ 13 июня 2012

У меня есть эта проблема, и она отличается для .net версии утилиты и моего сервиса
Я использую утилиту для .net 2 и мой сервис сборки с .net4

1 голос
/ 01 февраля 2012

Я тоже сталкивался с такой же проблемой. В моем случае я развертывал новую версию утилит, я копировал новые exe, установочные файлы, а затем пытался удалить утилиты.

Я скопировал обратно старую версию, удалил утилиты, скопировал новую версию и снова установил ее. В любом случае, это логическая последовательность, которой я должен был следовать в первую очередь.

0 голосов
/ 25 сентября 2014

В моем случае эта ошибка была вызвана случайной передачей каталога, содержащего службу, InstallUtil вместо передачи exe-файла службы.

Очевидно, что это ошибка человека, но я обнаружил, что сообщение об ошибке вводит в заблуждение.

0 голосов
/ 05 сентября 2012

Согласно ответу @ doublehelix, приведенному выше, этот ответ помог мне решить мою конкретную проблему, связанную с проблемой службы, работающей в Windows XP (разблокировка не доступна на вкладке безопасности, которую я мог найти). В моем случае я пытался запустить службу с отдельного диска (т.е. не на том же диске, что и Windows, и не в программных файлах), хотя фактический физический диск был таким же. Перемещение моего сервиса в папку Program Files решило основную проблему. (Я намеревался «прокомментировать» ответ @ doublehelix, но, похоже, я не в состоянии в моем текущем статусе).

...