tag:help.appveyor.com,2012-11-13:/discussions/suggestions/485-enable-optional-iis-modules-in-base-vm-imageAppVeyor: Discussion 2018-08-25T01:50:35Ztag:help.appveyor.com,2012-11-13:Comment/354818192014-12-07T23:02:55Z2014-12-07T23:02:55ZEnable optional IIS modules in base VM image.<div><p>Have you tried <code>Install-WindowsFeature</code> (<a href=
"http://technet.microsoft.com/library/jj205467.aspx">http://technet.microsoft.com/library/jj205467.aspx</a>)
to see if it has acceptable performance?</p></div>Feodor Fitsnertag:help.appveyor.com,2012-11-13:Comment/354818192014-12-08T09:04:06Z2014-12-08T09:04:06ZEnable optional IIS modules in base VM image.<div><p>I've tried Install-WindowsFeature and
Enable-WindowsOptionalFeature<br>
cmdlets. Both takes about 2 minutes to enable 3 IIS modules. Maybe
I can<br>
reduce that tine by using PowerShell background jobs (e.g.
starting<br>
asynchronous job in “init” script and waiting for
completion in<br>
“before_test” script).</p>
<p>By the way, TrustedInstaller service, which is needed by both
Install-WindowsFeature and Enable-WindowsOptionalFeature, is
disabled in VM<br>
image for some reason. That said, before enabling optional
Windows<br>
features, one must enable TrustedInstaller service:</p>
<p>Set-Service TrustedInstaller -StartupType Manual</p></div>Pavel Frolovtag:help.appveyor.com,2012-11-13:Comment/354818192014-12-08T19:38:58Z2014-12-08T19:39:32ZEnable optional IIS modules in base VM image.<div><p>2 minutes is not bad I can tell :)<br>
Alternatively, we could deploy fully-loaded IIS. What modules are
you interested in first?</p>
<p>TrustedInstaller and many others are disabled to speedup boot
time and minimize OS RAM/CPU overhead.</p></div>Feodor Fitsnertag:help.appveyor.com,2012-11-13:Comment/354818192014-12-09T09:22:51Z2014-12-09T09:22:51ZEnable optional IIS modules in base VM image.<div><p>Actually, I need IIS during testing phase to test some HTTP
client code<br>
against HTTP server using various authentication schemes (Basic,
Digest,<br>
Negotiate). For each scheme there exist optional IIS module which
must be<br>
enabled. Unfortunately as I found out, Digest and Negotiate
methods<br>
requires Windows domain environment, and while it is possible to
deploy AD<br>
DS with PowerShell, this operation will take unacceptable amount of
time<br>
and will require reboot in the end.</p>
<p>Ultimately, I decided to automate just Basic authentication
tests. I've<br>
used PowerShell background job to install IIS module while my
application<br>
is building. As s result, by the time my test script starts
executing, IIS<br>
module is already enabled! So, for now there is almost no overhead
and I'm<br>
satisfied with that.</p>
<p>But I think, fully-loaded IIS is a better alternative from
usability standpoint, especially if it doesn't involve additional
overhead during VM<br>
provisioning. And if it does involve overhead we could make it a
separate<br>
option in “services” for those developers who need it,
i.e., "services:<br>
iis-full".</p></div>Pavel Frolovtag:help.appveyor.com,2012-11-13:Comment/354818192014-12-09T18:47:35Z2014-12-09T18:47:35ZEnable optional IIS modules in base VM image.<div><p>Right, will add an issue for that.</p></div>Feodor Fitsner