2011-08-30 2 views
3

.NET 4.0 및 IIS 7.5 용 설치 관리자 중 하나를 업데이트 중이며, 그 중 하나는 자체 ID를 사용하도록 AppPool을 전환하는 것입니다. 특히 AppPool을 신원에 쓰기 권한을 부여하려면, 나는 윅스는 IIS 확장을 사용하여이 상당히 사소한 발견했다, 그러나 나는 우리가 정의하는 권한이 개 여분의 세트와 사투를 벌인거야 :WiX 권한 요소에서 AppPool ID를 지정하는 방법은 무엇입니까?

<Directory Id="LOGS_LOCATION" Name="logs"> 
    <!-- SourceDir\logs --> 
    <Component Id="LogsFolder" Guid="{3A7C38C7-6604-4063-A425-D62427B21AEE}" KeyPath="yes" DiskId="1"> 
     <CreateFolder> 
      <!-- SYSTEM account is automatically given access, but set other ACEs here to avoid Users having access --> 
      <Permission User="Administrators" GenericAll="yes"/> 
      <Permission User="[ASPNET_USER]" Domain="[ASPNET_DOMAIN]" GenericRead="yes" GenericWrite="yes" Read="yes" Delete="yes" DeleteChild="yes" Traverse="yes"/> 
      <!-- IIS5: ASPNET, IIS6: NetworkService, IIS7: AppPool identity --> 
     </CreateFolder> 
    </Component> 
</Directory> 

ASPNET_USERASPNET_DOMAIN이 정의 각각 AppPoolNameIIS APPPOOL이됩니다 (여기서 AppPoolName은 앱 풀의 이름과 정확하게 일치 함).

설치 프로그램을 실행하면 IIS APPOOL\AppPoolName이 유효하지 않으며 설치가 실패 함을 나타내는 1609 오류가 발생합니다. 웹 애플리케이션이 로그 디렉토리에 쓸 수 있도록 권한 요소에 앱 풀 ID를 어떻게 지정할 수 있습니까? 다른 신분증을 사용해야합니까?

답변

7

흥미로운 질문입니다.

Permission 요소를 작성하면 LockPermissions MSI 테이블의 레코드가 생성됩니다. MSDN에 따르면이 테이블의 레코드는 InstallFiles, CreateFoldersWriteRegistryValues 작업에 의해 제공됩니다. CreateFolder 요소가 부모 인 경우 분명히 CreateFolders 작업입니다.

해당 AppPool이 만들어지면 ApplicationPoolIdentity에 해당하는 보안 계정이 만들어집니다. 이제 ConfigureIIs 작업은 CreateFolders가 아닌 순서로 나중에 예약됩니다. CreateFolders 전에 ConfigureIIs를 이동하는 것은 분명히 의미가 없습니다.

나는이 작동 모르겠지만, 나는 다음을 시도합니다 :

  • PermissionEx 요소 (WiXUtilExtension의 하나)와 권한 요소를 교체합니다. Permission의 기능을 다루고 더 많은 유연성 (예 : ACL을 겹쳐 쓰지 않지만 추가)을 추가합니다.

  • ConfigureIIs 액션 (IIS 작업을 담당하는 액션) 이후에 SchedSecureObjects 액션 (PermissionEx 작업을 담당하는 액션)을 이동하십시오.

이제는 사용 권한을 설정해야 할 적절한 보안 계정이 있어야합니다. 예를 들어 도메인 부분의 유무에 관계없이 참조하는 방식으로 연주하고 싶을 수도 있습니다.

+0

흥미 롭다면, 나는 작동하는지 알기 위해 PermissionEx 주변에서 사냥을하고 있었지만, 명백한 것을 발견 할 수 없었다. – alastairs

+0

그래, 정말 고심하고있어. Wix 3.5에서 ConfigureIIS 이전에 SchedSecureObjects를 예약하려면 어떻게해야합니까? 나는 '를 시도했지만 CustomAction : ConfigureIIS에 대한 미해결 참조에 대해 불평을 계속합니다. 내 wixproj에서 WixUtilExtension과 WixIIsExtension을 모두 참조했습니다. – alastairs

+2

맞춤법 오류 여야합니다 - ConfigureIIs이고, 마지막 's'는 대문자가 아닙니다. –

관련 문제