una - permisos de escritura carpeta iis
Convierta la carpeta bajo el directorio virtual a la Aplicación, usando WIX (4)
¿Cómo puedo convertir un directorio en un directorio virtual a una aplicación usando WIX?
WIX instala el siguiente directorio virtual en IIS, y deseo que también convierta la carpeta del servicio web a una aplicación.
No pude encontrar una manera de hacerlo a través de WIX o la extensión IIS, así que recurrí a llamar a un comando externo. Para referencia futura, los comandos son:
IIS 5
C:/Inetpub/AdminScripts/mkwebdir.vbs -c Localhost -w "Default Web Site" -v "sentry/webservice","{physical path}"
C:/Inetpub/AdminScripts/adsutil.vbs appcreateinproc w3svc/1/root/sentry/webservice
IIS 6
C:/Windows/System32/iisvdir.vbs /create "Default Web Site/Sentry/webservice" webservice "{physical path}"
IIS 7
C:/Windows/System32/inetsrv/appcmd add app /site.name:"Default Web Site" /path:/Sentry/webservice /physicalPath:"{physical path}"
Esto se puede hacer con IISExtension , como sugiere Daniel Morritt. Como es muy difícil encontrar un código de muestra para esto, pensé en publicar cómo lo hice.
<!-- Your example uses the default web site. -->
<iis:WebSite Id="DefaultWebSite" Description="Default Web Site" SiteId="*">
<iis:WebAddress Id="DefaultWebAddress" Port="80"/>
</iis:WebSite>
<!-- Web Dir Properties to enable access to a Web Application. -->
<iis:WebDirProperties Id="AnonymousExecuteAndScript"
Read="yes"
Write="no"
Execute="yes"
Script="yes"
AnonymousAccess="yes"
Index="no"
LogVisits="no"/>
<!-- Assumes the presence of this directory reference. -->
<DirectoryRef Id="SentryWebServiceDir">
<Component Id="SentryWebServiceComponent" Guid="{GUID-GOES-HERE}">
<iis:WebVirtualDir Id="SentryWebService"
DirProperties="AnonymousExecuteAndScript"
Alias="Sentry/webservice"
Directory="SentryWebServiceDir"
WebSite="DefaultWebSite">
<!-- Make this virtual directory a web application -->
<iis:WebApplication Id="SentryWebServiceApp" Name="webservice" WebAppPool="DefaultAppPool"/>
</iis:WebVirtualDir>
<!-- Workaround for the need for a KeyPath for this component. -->
<RegistryValue Root="HKLM"
Key="SOFTWARE/YourCompany/Sentry/WebService"
KeyPath="yes"
Value="1"
Type="binary"
Name="Installed"
Id="SentryWebServiceInstalled"/>
</Component>
</DirectoryRef>
Todo lo anterior se puede anidar en un elemento <Fragment>
.
He probado este enfoque, y funciona:
http://www.mail-archive.com/[email protected]/msg04374.html
Dice poner todo el camino en el Alias, por ejemplo
<iis:WebVirtualDir Id="VIRTDIR_Sentry_webservice"
Directory="WebService"
Alias="Sentry/webservice"
WebSite="SITE_Default"> ...
Puede agregar una referencia a WiX IISExtension a su proyecto y crear uno con esto.
Un buen ejemplo de esto se puede encontrar aquí: Usar WiX para crear un directorio virtual de IIS