Не могу запустить сервис на другой машине - PullRequest
0 голосов
/ 10 января 2012

У меня есть служба C # , которая без проблем работает на моем ноутбуке (Windows 7). Как только я установил его на мой Windows Server 2003 , я получаю следующие ошибки. Во-первых, сразу после нажатия кнопки «Пуск» в окне сервиса, я получаю:

Не удалось запустить службу MyService на локальном компьютере. Ошибка 14001: это приложение не удалось запустить из-за конфигурации приложения это неверно. Переустановка приложения может решить эту проблему.

В программе просмотра событий я получаю две следующие ошибки:

Источник: SideBySide EventID: 58

Синтаксическая ошибка в манифесте или файле политики "C: \ Program Файлы \ HP \ MyService \ MyService.exe.Config "в строке 9.

Источник: SideBySide EventID: 59

Сгенерировать контекст активации не удалось для C: \ Program Файлы \ HP \ MyService \ MyService.exe. Справочное сообщение об ошибке: Manifest Ошибка разбора: внутренняя ошибка.

Мое приложение .NET имеет целевой каркас клиентского профиля .NET Framework 4. И на ноутбуке, и на сервере установлены VCredist 05, 08 и 2010, и на них установлены .NET 4, 3.5 3, 2 и 1.1.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <appSettings>
    <!-- Make sure to add \ and end of path -->
    <add key="xmlDistantFolder" value="\\127.0.0.1\epgdata\" />
    <add key="xmlLocalFolder" value="c:\\folder\" />

    <add key="runTargetExec" value="disabled" />
    <add key="targetExe" value="c:\\Windows\explorer.exe" />

   </appSettings>

</configuration>

Кроме того, если я удалил свой файл app.config (на самом деле он называется MyService.exe.config), служба работает, но не может прочитать в ней необходимые данные конфигурации, что делает ее бесполезной.

Я изменил целевой фреймворк до .NET 3.5 и в ресурсах на вкладке «Приложение» в свойствах моего проекта и добавил в манифест опцию «Создать приложение без манифеста» вместо «Вставить манифест с настройками по умолчанию». .

Служба теперь запускается, но в моем файле конфигурации появляется ошибка о недопустимом символе Я добавил это значение, и оно генерирует ошибку, говоря, что один из символов недопустим для XML. Любые подсказки?

<add key="url" value="http://127.0.0.1/node/exec?path=c:\\\\Program Files\\\\myApp\\\\&exec=myExecutable.exe&flags=[%22/nouser%22,%22/console%22]" />

Ответы [ 2 ]

3 голосов
/ 11 января 2012

Вот решение моих проблем:

  1. Чтобы исправить ошибку «Side-by-Side», я установил опцию манифеста «Создать приложение без манифеста» вместо «Вставить».манифест с настройками по умолчанию ".

  2. Чтобы исправить недопустимый символ в моем файле конфигурации, я изменил & для &amp;.Это делает XML действительным и доступным для анализа классом Configuration Manager.

1 голос
/ 10 января 2012
<add key="xmlLocalFolder" value="c:\\folder\" />
<add key="targetExe" value="c:\\Windows\explorer.exe" />

должно быть

<add key="xmlLocalFolder" value="c:\folder\" />
<add key="targetExe" value="c:\Windows\explorer.exe" />

хотя я не вижу, что вы генерируете ошибку разбора.

...