Another option is to use the wix CAQuietExec to invoke the appcmd. This way you 
don't have to make your own full blown CA.

        <CustomAction Id="TurnOff32BitApps" BinaryKey="WixCA" 
DllEntry="CAQuietExec" Execute="deferred" Return="check" Impersonate="no" />
        <CustomAction Id="PropertyAssignTurnOff32BitApps" 
Property="TurnOff32BitApps" Value='"[SystemFolder]inetsrv\appcmd" set apppool 
/apppool.name:&quot;[AppPoolName]&quot; /enable32BitAppOnWin64:false' />

            <Custom Action="PropertyAssignTurnOff32BitApps" 
Before="TurnOff32BitApps" />
            <Custom Action="TurnOff32BitApps" Before="InstallFinalize">
                <![CDATA[NOT Installed AND VersionNT64 >= 600]]>
            </Custom>

This is for the enable32BitAppOnWin64 but the concept applies to any of the iis 
setting Wix can't do by default.



-----Original Message-----
From: Steven Ogilvie [mailto:steven.ogil...@titus.com] 
Sent: Friday, January 18, 2013 12:02 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Wix's IIS extension. How to set "Limit Interval 
(minutes)" on an App Pool

I also had to create a new custom action for IIS, setting the 
enable32BitAppOnWin64 true or false based on the bitness of the OS, if your WIX 
installer was a 32 bit installer it would ALWAYS set this to true.
There are 2 C# functions, one to set the enable32BitAppOnWin64 and the other to 
determine the bitness of the OS.

I would call this custom action: 
<CustomAction Id="CA_Set_ENABLE32BITAPPPOOL" Property="CA_ENABLE32BITAPPPOOL" 
Value="[WEB_SITE_NAME]|"/>
    <CustomAction Id="CA_ENABLE32BITAPPPOOL" BinaryKey="BIN_CustomActionMM" 
DllEntry="Enable32BitApplicationPool" Impersonate="no" Execute="deferred" 
Return="ignore"/>
    <UI>
      <ProgressText Action="CA_ENABLE32BITAPPPOOL">CA: Setting 
enable32BitAppOnWin64 for TITUS Application Pool...</ProgressText>
    </UI>

<InstallExecuteSequence>
      <Custom Action="CA_Set_ENABLE32BITAPPPOOL" After="CostFinalize">NOT 
Installed</Custom>
<Custom Action="CA_ENABLE32BITAPPPOOL" Before="InstallFinalize">NOT 
Installed</Custom>

         /// <summary>
        /// Enable32BitApplicationPool sets the App Pool propery 
enable32BitAppOnWin64
        /// true or false depending on the bitness of the OS
        /// </summary>
        /// <param name="session"></param>
        /// <returns>ActionResult.Success</returns>
        [CustomAction]
        public static ActionResult Enable32BitApplicationPool(Session session)
        {
            try
            {
                if (session == null)
                {
                    throw new ArgumentNullException("session");
                }
                string tempString = (GetSessionProperty(session, 
"CustomActionData", false));
                string[] parts = tempString.Split(new[] { '|' });
                string applicationPool = parts[0];  // which is [WEB_SITE_NAME] 
the name of the web app pool as well
                const string quote = "\"";
                string cmdLineParameters = "set apppool /apppool.name:" + quote 
+ applicationPool + quote + " /enable32BitAppOnWin64:false";

                var cmdLineExe = 
Environment.GetFolderPath(Environment.SpecialFolder.System) + 
"\\inetsrv\\appcmd.exe";

                // Prepare the process to run
                var startInfo = new ProcessStartInfo
                {
                    UseShellExecute = true,
                    Arguments = cmdLineParameters,
                    FileName = cmdLineExe,
                    WindowStyle = ProcessWindowStyle.Hidden,
                    CreateNoWindow = true
                };
                // Run the external process & wait for it to finish
                using (Process proc = Process.Start(startInfo))
                {
                    proc.WaitForExit();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Enable32BitApplicationPool failed: " + 
ex.Message, "Custom action exception error...", MessageBoxButtons.OK, 
MessageBoxIcon.Error);
            }
            
            return ActionResult.Success;
        }


/// <summary>
/// Detects whether or not the OS is 64 or 32 bit
/// </summary>
/// <returns></returns>
private static bool Is64BitWindows()
{
     return 
Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86));
}

Hope this helps out...

-----Original Message-----
From: Rob Mensching [mailto:r...@robmensching.com] 
Sent: January-18-13 11:45 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Wix's IIS extension. How to set "Limit Interval 
(minutes)" on an App Pool

Or better, just add the missing setting to the WiX CA. I can't image it's that 
much work... certainly less than creating a whole new CA.


On Thu, Jan 17, 2013 at 10:54 PM, Neil Sleightholm <n...@x2systems.com>wrote:

> Looking at the source I don't think it has been implemented.
>
> You could try adding a custom action to set it or write the entry in 
> to ApplicationHost.config ( 
> http://www.iis.net/configreference/system.applicationhost/applicationp
> ools/add/cpu
> )
>
> Neil
>
> -----Original Message-----
> From: JohnB [mailto:john.bu...@telvent.com]
> Sent: 18 January 2013 00:30
> To: wix-users@lists.sourceforge.net
> Subject: [WiX-users] Wix's IIS extension. How to set "Limit Interval 
> (minutes)" on an App Pool
>
> In IIS 7, an App Pool has a settings called "Limit Interval (minutes)"
> (aka "resetInterval").  I can't seem to find a way to set this in Wix.
>  I've tried the WebAppPool element's RefreshCpu, RecycleMinutes, and 
> several other attributes with no luck.  Is there a way?  Here's a 
> screen shot of what I mean. Thanks.
>
> <
> http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/file/n75
> 82998/2013-01-17_17h09_14.png
> >
>
>
>
> --
> View this message in context:
> http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Wix-s-II
> S-extension-How-to-set-Limit-Interval-minutes-on-an-App-Pool-tp7582998
> .html Sent from the wix-users mailing list archive at Nabble.com.
>
>
> ----------------------------------------------------------------------
> -------- Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API 
> and much more. Get web development skills now with LearnDevNow -
> 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
> SALE $99.99 this month only -- learn more at:
> http://p.sf.net/sfu/learnmore_122812
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
> ----------------------------------------------------------------------
> -------- Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API 
> and much more. Get web development skills now with LearnDevNow -
> 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
> SALE $99.99 this month only -- learn more at:
> http://p.sf.net/sfu/learnmore_122812
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
------------------------------------------------------------------------------
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get 
web development skills now with LearnDevNow -
350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and
much more. Get web development skills now with LearnDevNow -
350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and
much more. Get web development skills now with LearnDevNow -
350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to