права доступа к каталогу wix serviceinstall - PullRequest
0 голосов
/ 02 декабря 2011

Я устанавливаю сервис, используя wix. Также я создаю каталог с помощью CreateFolder. Служба при запуске проверяет, существует ли этот каталог или нет.

Из-за проблем с разрешениями служба не может проверить наличие каталога. Следовательно это терпит неудачу.

Может кто-нибудь подсказать, пожалуйста, как предоставить правильные разрешения при создании каталога, чтобы служба работала успешно.

Вот код установки и запуска службы:

  <ServiceInstall Id="MyServiceInstaller"
                    Type="ownProcess"
                    Vital="yes"
                    Name="MyService"
                    DisplayName="MyService"
                    Description="MyService"
                    Start="auto"
                    Account="LocalSystem"
                    ErrorControl="normal"
                    Interactive="no">

      <ServiceDependency Id="Winmgmt"/>

      <util:PermissionEx  User="Everyone"
                          GenericAll="yes"
                          ServiceChangeConfig="yes"
                          ServiceEnumerateDependents="yes"
                          ChangePermission="yes"
                          ServiceInterrogate="yes"
                          ServicePauseContinue="yes"
                          ServiceQueryConfig="yes"
                          ServiceQueryStatus="yes"
                          ServiceStart="yes"
                          ServiceStop="yes"/>

      <util:ServiceConfig FirstFailureActionType="restart"
                          SecondFailureActionType="restart"
                          ThirdFailureActionType="none"
                          ResetPeriodInDays="1"/>
    </ServiceInstall>

    <ServiceControl Id="MyServiceController"
                    Start="install"
                    Stop="both"
                    Remove="uninstall"
                    Name="MyService"
                    Wait="no"/>

А вот код создания каталога:

        <Directory Id="D_MYDIR" Name="Mydir">
      <Component Id="C_FolderCreate" Guid="{CCCCCCB1-47BC-44E9-AAAA-1E750E257086}">
        <CreateFolder>
          <Permission GenericAll="yes" User="SYSTEM"/>
          <Permission User="Users" Domain="[LOCAL_MACHINE_NAME]" GenericRead="yes" Read="yes" GenericExecute="yes" ChangePermission="yes" Delete="yes"/>
        </CreateFolder>
      </Component>
    </Directory>

Большое спасибо за помощь:)

С наилучшими пожеланиями, Марк

1 Ответ

2 голосов
/ 02 декабря 2011

Может быть, вам просто нужно установить разрешения для пользователя LocalSystem, так как это пользователь, под которым работает ваша служба, так как вы установили Account="LocalSystem".

<Permission GenericAll="yes" User="LocalSystem"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...