<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.iis.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:cs="http://blogs.iis.net/"><channel><title>The Official Microsoft IIS Site</title><link>http://blogs.iis.net/</link><description>The platform that enables you to build rich, interactive communities</description><dc:language>en-US</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>OSBC 2012: Advancing Interoperability in the Cloud </title><link>http://blogs.iis.net/port25-php/archive/2012/05/21/osbc-2012-advancing-interoperability-in-the-cloud.aspx</link><pubDate>Mon, 21 May 2012 19:08:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4974325</guid><dc:creator>Port25</dc:creator><slash:comments>0</slash:comments><description>At the Open Source Business Conference in San Francisco today, Sandy Gupta, the General Manager for Microsoft&amp;rsquo;s Open Solutions Group, along with Alan Clark, Director of New Initiatives and Emerging Standards for Open Source at SUSE, announced the release of a beta version of the SUSE Manager Management Pack for System Center. In a blog post , Gupta said the announcement, which was made in collaboration with SUSE, lets this management pack connect the Linux server management capabilities provided...(&lt;a href="http://blogs.iis.net/port25-php/archive/2012/05/21/osbc-2012-advancing-interoperability-in-the-cloud.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4974325" width="1" height="1"&gt;</description><cs:applicationKey>port25-php</cs:applicationKey><category domain="http://blogs.iis.net/port25-php/archive/tags/Azure/default.aspx">Azure</category><category domain="http://blogs.iis.net/port25-php/archive/tags/cloud/default.aspx">cloud</category><category domain="http://blogs.iis.net/port25-php/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.iis.net/port25-php/archive/tags/interoperability/default.aspx">interoperability</category><category domain="http://blogs.iis.net/port25-php/archive/tags/Linux/default.aspx">Linux</category><category domain="http://blogs.iis.net/port25-php/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://blogs.iis.net/port25-php/archive/tags/OSBC/default.aspx">OSBC</category><category domain="http://blogs.iis.net/port25-php/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Roku releases support for Smooth Streaming</title><link>http://blogs.iis.net/vsood/archive/2012/05/15/roku-releases-support-for-smooth-streaming.aspx</link><pubDate>Tue, 15 May 2012 20:50:49 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4973689</guid><dc:creator>vsood</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;At NAB 2012 in April, we announced an initial list of partners that licensed Smooth Streaming Client Porting Kit (&lt;a href="http://www.microsoft.com/en-us/mediaplatform/sspk.aspx"&gt;link&lt;/a&gt;). Today, Roku announced that the support for Smooth Streaming is publicly available for Roku 2, Roku LT and Roku HD devices with version Roku software version 4.7. This update will be pushed to these devices in next 48 hours. You can get more details on their &lt;a href="http://blog.roku.com/blog/2012/05/15/update-available-for-roku-2-roku-lt-and-new-roku-hd/"&gt;blog&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Congratulations to the team at Roku for this release. We are very excited to see the release.&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4973689" width="1" height="1"&gt;</description><cs:applicationKey>vsood</cs:applicationKey><category domain="http://blogs.iis.net/vsood/archive/tags/Media/default.aspx">Media</category><category domain="http://blogs.iis.net/vsood/archive/tags/Roku/default.aspx">Roku</category><category domain="http://blogs.iis.net/vsood/archive/tags/Smooth+Streaming/default.aspx">Smooth Streaming</category><category domain="http://blogs.iis.net/vsood/archive/tags/Smooth+Streaming+Porting+Kit/default.aspx">Smooth Streaming Porting Kit</category></item><item><title>Introducing Testing Domain - localtest.me</title><link>http://blogs.iis.net/owscott/archive/2012/05/14/introducing-testing-domain-localtest-me.aspx</link><pubDate>Mon, 14 May 2012 15:59:54 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4973649</guid><dc:creator>Scott Forsyth's Blog : IIS</dc:creator><slash:comments>0</slash:comments><description>Save this URL, memorize it, write it on a sticky note, tweet it, tell your colleagues about it!&amp;#160; localtest.me ( http://localtest.me ) and *.localtest.me ( http://something.localtest.me ) If you do any testing on your local system you’ve probably Read More......(&lt;a href="http://blogs.iis.net/owscott/archive/2012/05/14/introducing-testing-domain-localtest-me.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4973649" width="1" height="1"&gt;</description><cs:applicationKey>owscott</cs:applicationKey><category domain="http://blogs.iis.net/owscott/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.iis.net/owscott/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.iis.net/owscott/archive/tags/IIS8/default.aspx">IIS8</category><category domain="http://blogs.iis.net/owscott/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://blogs.iis.net/owscott/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.iis.net/owscott/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>FreeBSD to run as a first-class guest on Windows Server Hyper-V </title><link>http://blogs.iis.net/port25-php/archive/2012/05/11/freebsd-to-run-as-a-first-class-guest-on-windows-server-hyper-v.aspx</link><pubDate>Fri, 11 May 2012 18:35:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4973579</guid><dc:creator>Port25</dc:creator><slash:comments>0</slash:comments><description>Today, at BSDCan 2012 , Microsoft and partners NetApp and Citrix announced upcoming native support for FreeBSD support on Windows Server Hyper-V. This move continues our commitment to extend support across platforms to the Windows Server Hyper-V solution, making it easier for more customers to realize the benefits of server virtualization and more easily adopt cloud computing. This will allow FreeBSD to run as a first-class guest on Windows Server Hyper-V . The drivers and associated source code...(&lt;a href="http://blogs.iis.net/port25-php/archive/2012/05/11/freebsd-to-run-as-a-first-class-guest-on-windows-server-hyper-v.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4973579" width="1" height="1"&gt;</description><cs:applicationKey>port25-php</cs:applicationKey><category domain="http://blogs.iis.net/port25-php/archive/tags/cloud/default.aspx">cloud</category><category domain="http://blogs.iis.net/port25-php/archive/tags/Hyper-V/default.aspx">Hyper-V</category><category domain="http://blogs.iis.net/port25-php/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.iis.net/port25-php/archive/tags/interoperability/default.aspx">interoperability</category><category domain="http://blogs.iis.net/port25-php/archive/tags/Linux/default.aspx">Linux</category><category domain="http://blogs.iis.net/port25-php/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://blogs.iis.net/port25-php/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>URL Scan or Request Filtering in IIS7</title><link>http://bradkingsley.com/url-scan-or-request-filtering-in-iis7/</link><pubDate>Tue, 01 May 2012 18:40:51 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4960491</guid><dc:creator>Ponderings - Various Topical Thoughts by Brad Kingsley » IIS</dc:creator><slash:comments>0</slash:comments><description>URL Scan has been a useful tool since Windows Server 2003, and continues to be used on many web server deployments. Did you know though that IIS7 includes a feature named Request Filtering that handles the same functionality as URL &amp;#8230; Read more &amp;#187;...(&lt;a href="http://bradkingsley.com/url-scan-or-request-filtering-in-iis7/"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4960491" width="1" height="1"&gt;</description><cs:applicationKey>sbradk</cs:applicationKey><category domain="http://blogs.iis.net/sbradk/archive/tags/Cytanium/default.aspx">Cytanium</category><category domain="http://blogs.iis.net/sbradk/archive/tags/Hosting/default.aspx">Hosting</category><category domain="http://blogs.iis.net/sbradk/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.iis.net/sbradk/archive/tags/OrcsWeb/default.aspx">OrcsWeb</category><category domain="http://blogs.iis.net/sbradk/archive/tags/SysAdmin/default.aspx">SysAdmin</category><category domain="http://blogs.iis.net/sbradk/archive/tags/WebDev/default.aspx">WebDev</category></item><item><title>Application Initialization Part 2</title><link>http://blogs.iis.net/wadeh/archive/2012/05/01/application-initialization-part-2.aspx</link><pubDate>Tue, 01 May 2012 16:38:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4960281</guid><dc:creator>wadeh</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;In my &lt;A href="http://blogs.iis.net/wadeh/archive/2012/04/16/re-introducing-application-initialization.aspx" mce_href="http://blogs.iis.net/wadeh/archive/2012/04/16/re-introducing-application-initialization.aspx"&gt;last post&lt;/A&gt;, I gave a bit of background on the &lt;A href="http://www.iis.net/download/ApplicationInitialization" mce_href="http://www.iis.net/download/ApplicationInitialization"&gt;Application Warm-Up module&lt;/A&gt;, now called Application Initialization.&amp;nbsp; This week, I would like to go into more detail as to what the Application Initialization module does, and how you should think about using it.&lt;/P&gt;
&lt;P&gt;As I mentioned earlier, the idea behind Application Initialization is that we want to provide a way that IIS can prepare an application to serve requests without having to wait for an actual client to make a request.&amp;nbsp; With Application Initialization, we break the problem down into 3 parts:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;How can I start the worker process that hosts my application without waiting for a request?&lt;/LI&gt;
&lt;LI&gt;How can I get the worker process to load my application without waiting for a request?&lt;/LI&gt;
&lt;LI&gt;How can my application send some kind of response so that clients don't see the browser hang until the application is ready?&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I would like to address the first two questions here.&amp;nbsp; The third question is a bit more complex and I will save it for my next post.&lt;/P&gt;
&lt;H1&gt;Starting a worker process without waiting for a request&lt;/H1&gt;
&lt;P&gt;This is something that's not strictly speaking a part of Application Initialization in that we added this capability as a built-in feature of IIS, starting with IIS 7.5.&amp;nbsp; I will go over it here because it works hand in hand with Application Initialization to make the application available as soon as possible after starting IIS.&lt;/P&gt;
&lt;P&gt;This feature is controlled by a the startMode property for the application pool, described (along with other application pool properties) &lt;A href="http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/applicationPoolDefaults" mce_href="http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/applicationPoolDefaults"&gt;here&lt;/A&gt;.&amp;nbsp; The default value for startMode is OnDemand, which means that IIS will not spin up any worker processes until needed to satisfy a client request.&amp;nbsp; If you set it to alwaysRunning, IIS will ensure that a worker process is always running for the application pool.&amp;nbsp; This means that IIS will spin up a worker process when the World Wide Web Service is started, and it will start a new worker process if the existing one is terminated.&lt;/P&gt;
&lt;P&gt;Note that this property should not be confused with the autoStart property.&amp;nbsp; Understanding autoStart requires a bit of background knowledge.&amp;nbsp; Both application pools and worker processes can be started and stopped.&amp;nbsp; If an application pool is started, it means that IIS will accept requests for URLs within the pool, but it does not necessarily mean that there are any worker processes started.&amp;nbsp; If an application pool is stopped, IIS will return a "503 Service Unavailable" for any requests to the application pool and it will not start any worker processes.&amp;nbsp; The autoStart property is essentially a flag that IIS uses to know which application pools should be started when the World Wide Web Service is started.&amp;nbsp; When you stop an application pool in IIS Manager, autoStart is set to false.&amp;nbsp; When you start an application pool, autoStart is set to true.&amp;nbsp; In this way, IIS ensures that the same set of application pools are running after the World Wide Web Service is started and stopped (or through a machine reboot.)&lt;/P&gt;
&lt;P&gt;Now let's take a quick look at the configuration for an application pool that is set to be always available.&amp;nbsp; This application pool will start when the World Wide Web Service starts and it will immediately spin up a worker process.&lt;/P&gt;&lt;PRE style="BACKGROUND-COLOR: #ffffff; COLOR: black" id=codeSnippet&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;system.applicationHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;  &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;applicationPools&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;add&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="DefaultAppPool"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;autoStart&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="true"&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #ffff00; COLOR: #ff0000"&gt;startMode&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND-COLOR: #ffff00; COLOR: #0000ff"&gt;="alwaysRunning"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;  &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;applicationPools&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;system.applicationHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;With this configuration, the Default Application Pool will immediately spin up a worker process when IIS is started, and it will spin up a new worker process when the existing one exits.&lt;/P&gt;
&lt;P&gt;With IIS 7.5, this property was not exposed in IIS Manager.&amp;nbsp; It can be set by editing the &lt;A href="http://learn.iis.net/page.aspx/124/introduction-to-applicationhostconfig/" mce_href="http://learn.iis.net/page.aspx/124/introduction-to-applicationhostconfig/"&gt;applicationhost.config&lt;/A&gt; file directly or by one of IIS's scripting or programming APIs, or by the &lt;A href="http://technet.microsoft.com/en-us/edge/Video/ff710902" mce_href="http://technet.microsoft.com/en-us/edge/Video/ff710902"&gt;Configuration Editor&lt;/A&gt; UI tool.&amp;nbsp; In IIS 8, we have added the startMode property to the advanced properties page for the application pools UI.&lt;/P&gt;
&lt;H1&gt;How can I get the worker process to load my application without waiting for a request?&lt;/H1&gt;
&lt;P&gt;Now that you can see how to get IIS to spin up a worker process without waiting for a request, the next thing to address is how to get an application loaded within that worker process without waiting for a request.&amp;nbsp; The Application Initialization module provides a solution here, and as above, it is controlled by a single configuration property.&lt;/P&gt;
&lt;P&gt;The Application Initialization module extends the IIS configuration by adding a new property to the application settings called preloadEnabled (in IIS 8, this property is built-in.)&amp;nbsp; Let's take a look at what this looks like in the configuration where I've added a new application to the default web site and enabled it for preload:&lt;/P&gt;&lt;PRE style="BACKGROUND-COLOR: #ffffff; COLOR: black" id=codeSnippet&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;system.applicationHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;  &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;sites&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;site&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Default Web Site"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;id&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="1"&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;      &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;application&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;path&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="/"&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;virtualDirectory&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;path&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="/" &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;physicalPath&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="%SystemDrive%\inetpub\wwwroot"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;      &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;application&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;      &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;application&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="AppInit" &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;applicationPool&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="DefaultAppPool" &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND-COLOR: #ffff00; COLOR: #ff0000"&gt;preloadEnabled&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&lt;SPAN style="BACKGROUND-COLOR: #ffff00"&gt;="true"&lt;/SPAN&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;virtualDirectory&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;path&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="/AppInit" &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;physicalPath&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="c:\inetpub\wwwroot\appinit"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;      &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;application&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;site&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;  &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;sites&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;system.applicationHost&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;Here's how Application Initialization uses this property.&amp;nbsp; When a new worker process spins up, Application Initialization will enumerate all of the applications that it will host and checks for this property.&amp;nbsp; For any application where preloadEnabled="true", it will build a URL corresponding to the default page for the application and run it through the pipeline.&amp;nbsp; This request does not go through the network, and there is no client listening for a response (IIS discards any data that would have gone to the client.)&lt;/P&gt;
&lt;P&gt;This "fake" request accomplishes a few key things.&amp;nbsp; First, it goes through the IIS pipeline and kicks off an application start event.&amp;nbsp; This initializes a number of parts inside of IIS, and if the request is for ASP.NET, it will cause global.asax to run.&amp;nbsp; It also reaches the application, which will see it is the first request after starting.&amp;nbsp; Typically, I expect that applications will just handle this request just like any other request from a real client, but we do set some server variables into our "fake" request, so an application with awareness of this feature could implement special processing if it chose to do so.&lt;/P&gt;
&lt;P&gt;There is another important aspect to this process.&amp;nbsp; When IIS spins up a new worker process, there is two way communication between &lt;A href="http://technet.microsoft.com/en-us/library/cc735229(v=ws.10).aspx" mce_href="http://technet.microsoft.com/en-us/library/cc735229(v=ws.10).aspx"&gt;WAS&lt;/A&gt; and the new process.&amp;nbsp; This allows WAS to know precisely when the worker process is ready to accept new requests.&amp;nbsp; It also allows the worker process to get information from WAS as to whether it is going to be a new process to start taking requests, or whether it's a replacement process to take over for an older process that's being recycled.&lt;/P&gt;
&lt;P&gt;This is an important distinction.&amp;nbsp; In the case of a new worker process, we want to start taking client requests as soon as possible, which is the way that things work outside of Application Initialization.&amp;nbsp; In the case of a replacement process, though, Application Initialization will prevent the new process from reporting itself ready for new requests, until all of the preload requests (and any warumup requests, which I will discuss later) have completed.&amp;nbsp; This means that no client will ever have to wait for a process recycle to complete - because the old process will continue to take requests until the new one has completed all application initialization.&lt;/P&gt;
&lt;P&gt;In my experience, many applications with a slow startup will do their work even for a simple request to the default page.&amp;nbsp; For such applications, you can take advantage of improved application recycling simply by setting preloadEnabled="true" for that application.&amp;nbsp; Similar to the startMode property above, IIS 7.5 requires you to make this setting via direct edits or applicationhost.config, or via scripting or one of our config APIs, or via the Configuration Editor UI tool.&amp;nbsp; In IIS 8, we have added "Enable Preload" as a checkbox in the UI for application settings.&lt;/P&gt;
&lt;H1&gt;Next time...&lt;/H1&gt;
&lt;P&gt;The two topics that I've covered here should get you started with Application Initialization.&amp;nbsp; The ability to handle worker process recycles has been a highly requested feature.&lt;/P&gt;
&lt;P&gt;In my next post, I'll tackle the topic of what it means to initialize an application and what things an application developer can do to make things responsive during the time everything is warming up.&amp;nbsp; This is where we've made major changes and added a lot of stuff since the original beta release.&lt;/P&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4960281" width="1" height="1"&gt;</description><cs:applicationKey>wadeh</cs:applicationKey></item><item><title>Windows Server 2012, IIS8, ASP.NET 3.5 and issue installing behind firewall (without internet)</title><link>http://blogs.iis.net/steveschofield/archive/2012/04/27/windows-server-2012-iis8-asp-net-3-5-and-issue-installing-behind-firewall-without-internet.aspx</link><pubDate>Sat, 28 Apr 2012 03:35:23 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4955716</guid><dc:creator>IISLogs.com - iis</dc:creator><slash:comments>2</slash:comments><description>I’ve been starting to become familiar with Windows Server 2012 (aka Win8). I’ve been a server “guy” for several years and when new versions come out, especially with another version of IIS. My interest is peaked to evaluate new features. This blog post is about a recent issue that alters a bit how we install the .NET 3.5 framework. A little history, when .NET 1.0 came out, it was a stand-alone runtime that would install on Windows 2000. When Windows Server 2003, .NET 1.1 was part of the OS and you...(&lt;a href="http://blogs.iis.net/steveschofield/archive/2012/04/27/windows-server-2012-iis8-asp-net-3-5-and-issue-installing-behind-firewall-without-internet.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4955716" width="1" height="1"&gt;</description><cs:applicationKey>steveschofield</cs:applicationKey></item><item><title>Here’s to the first release from MS Open Tech: Redis on Windows</title><link>http://blogs.iis.net/port25-php/archive/2012/04/26/here-s-to-the-first-release-from-ms-open-tech-redis-on-windows.aspx</link><pubDate>Thu, 26 Apr 2012 19:01:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4953625</guid><dc:creator>Port25</dc:creator><slash:comments>0</slash:comments><description>The past few weeks have been very busy in our offices as we announced the creation of Microsoft Open Technologies, Inc . Now that the dust has settled it&amp;rsquo;s time for us to resume our regular cadence in releasing code, and we are happy to share with you the very first deliverable from our new company: a new and significant iteration of our work on Redis on Windows, the open-source, networked, in-memory, key-value data store. The major improvements in this latest version involve the process of...(&lt;a href="http://blogs.iis.net/port25-php/archive/2012/04/26/here-s-to-the-first-release-from-ms-open-tech-redis-on-windows.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4953625" width="1" height="1"&gt;</description><cs:applicationKey>port25-php</cs:applicationKey><category domain="http://blogs.iis.net/port25-php/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.iis.net/port25-php/archive/tags/interoperability/default.aspx">interoperability</category><category domain="http://blogs.iis.net/port25-php/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://blogs.iis.net/port25-php/archive/tags/Windows/default.aspx">Windows</category><category domain="http://blogs.iis.net/port25-php/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>More news from MS Open Tech: announcing the open source Metro style theme for jQuery Mobile</title><link>http://blogs.iis.net/port25-php/archive/2012/04/26/more-news-from-ms-open-tech-announcing-the-open-source-metro-style-theme-for-jquery-mobile.aspx</link><pubDate>Thu, 26 Apr 2012 19:00:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4953626</guid><dc:creator>Port25</dc:creator><slash:comments>0</slash:comments><description>Starting today, the Metro style theme for JQuery Mobile , the popular open source mobile user interface framework, is available for download on GitHub and can be used as a NuGet package in Visual Studio . The theme enables HTML5 pages to adapt automatically to the Metro design style when rendered on Windows Phone 7.5. The Metro style theme is open source and available for download here . This new Metro style theme&amp;rsquo;s development was sponsored by Microsoft Open Technologies, Inc. working closely...(&lt;a href="http://blogs.iis.net/port25-php/archive/2012/04/26/more-news-from-ms-open-tech-announcing-the-open-source-metro-style-theme-for-jquery-mobile.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4953626" width="1" height="1"&gt;</description><cs:applicationKey>port25-php</cs:applicationKey></item><item><title>Configuring FTP Client Certificate Authentication in FTP 7</title><link>http://blogs.iis.net/robert_mcmurray/archive/2012/04/26/configuring-ftp-client-certificate-authentication-in-ftp-7.aspx</link><pubDate>Thu, 26 Apr 2012 11:36:30 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4952759</guid><dc:creator>robmcm</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;We had a customer question the other day about configuring FTP Client Certificate Authentication in FTP 7.0 and&amp;nbsp; in FTP 7.5. It had been a while since the last time that I had configured those settings on an FTP server, so I thought that it would be great to re-familiarize myself with that feature. To my initial dismay, it was a little more difficult than I had remembered, because there are a lot of parts to be configured.&lt;/p&gt;
&lt;p&gt;That being said, there are a few primary activities that you need to know about and configure correctly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="#001"&gt;Configuring the FTP Service&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="#002"&gt;Configuring Active Directory Mapping&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="#003"&gt;Configuring your FTP Client&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I will explain each of those in this blog, although I will defer some of the details for Active Directory mapping to an excellent blog series that I discovered by &lt;a href="http://www.dotnetscraps.com/dotnetscraps/author/Vivek.aspx" target="_blank"&gt;Vivek Kumbhar&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;a name="001"&gt;&lt;/a&gt;Configuring the FTP Service&lt;/h3&gt;
&lt;p&gt;There are several settings that you need to configure for the FTP server; unfortunately there is no user interface for those settings, so you might want to familiarize yourself with the following settings:&lt;/p&gt;
&lt;ul style="line-height: 200%;"&gt;
&lt;li&gt;&lt;a href="http://www.iis.net/ConfigReference/system.applicationHost/sites/site/ftpServer/security/authentication/clientCertAuthentication" target="_blank"&gt;FTP Client Certificate Authentication &amp;lt;clientCertAuthentication&amp;gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.iis.net/ConfigReference/system.applicationHost/sites/site/ftpServer/security/ssl" target="_blank"&gt;FTP over SSL &amp;lt;ssl&amp;gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.iis.net/ConfigReference/system.applicationHost/sites/site/ftpServer/security/sslClientCertificates" target="_blank"&gt;FTP SSL Client Certificates &amp;lt;sslClientCertificates&amp;gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At first I had made a batch file that was configuring these settings by using AppCmd, but I eventually abandoned that script and wrote the following VBScript code to configure all of the settings at one time - the only parts that you need to change is your site name and the hash value your SSL certificate, which are highlighted in yellow:&lt;/p&gt;
&lt;pre style="margin-left: 20px; color: black; background-color: #ffffff;"&gt;&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; adminManager = CreateObject(&lt;span style="color: #800000;"&gt;"Microsoft.ApplicationHost.WritableAdminManager"&lt;/span&gt;)
adminManager.CommitPath = &lt;span style="color: #800000;"&gt;"MACHINE/WEBROOT/APPHOST"&lt;/span&gt;
&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; sitesSection = adminManager.GetAdminSection(&lt;span style="color: #800000;"&gt;"system.applicationHost/sites"&lt;/span&gt;, &lt;span style="color: #800000;"&gt;"MACHINE/WEBROOT/APPHOST"&lt;/span&gt;)
&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; sitesCollection = sitesSection.Collection

siteElementPos = FindElement(sitesCollection, &lt;span style="color: #800000;"&gt;"site"&lt;/span&gt;, Array(&lt;span style="color: #800000;"&gt;"name"&lt;/span&gt;, &lt;span style="color: #800000;"&gt;"&lt;span style="background-color: #ffff00;"&gt;ftp.contoso.com&lt;/span&gt;"&lt;/span&gt;))
&lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; (addElementPos = -1) &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;
   WScript.Echo &lt;span style="color: #800000;"&gt;"Element not found!"&lt;/span&gt;
   WScript.Quit
&lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt;
&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; siteElement = sitesCollection.Item(siteElementPos)

&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; ftpServerElement = siteElement.ChildElements.Item(&lt;span style="color: #800000;"&gt;"ftpServer"&lt;/span&gt;)
&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; securityElement = ftpServerElement.ChildElements.Item(&lt;span style="color: #800000;"&gt;"security"&lt;/span&gt;)

&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; sslClientCertificatesElement = securityElement.ChildElements.Item(&lt;span style="color: #800000;"&gt;"sslClientCertificates"&lt;/span&gt;)
sslClientCertificatesElement.Properties.Item(&lt;span style="color: #800000;"&gt;"clientCertificatePolicy"&lt;/span&gt;).Value = &lt;span style="color: #800000;"&gt;"CertRequire"&lt;/span&gt;
sslClientCertificatesElement.Properties.Item(&lt;span style="color: #800000;"&gt;"useActiveDirectoryMapping"&lt;/span&gt;).Value = &lt;span style="color: #0000ff;"&gt;True&lt;/span&gt;

&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; authenticationElement = securityElement.ChildElements.Item(&lt;span style="color: #800000;"&gt;"authentication"&lt;/span&gt;)
&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; clientCertAuthenticationElement = authenticationElement.ChildElements.Item(&lt;span style="color: #800000;"&gt;"clientCertAuthentication"&lt;/span&gt;)
clientCertAuthenticationElement.Properties.Item(&lt;span style="color: #800000;"&gt;"enabled"&lt;/span&gt;).Value = &lt;span style="color: #0000ff;"&gt;True&lt;/span&gt;

&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; sslElement = securityElement.ChildElements.Item(&lt;span style="color: #800000;"&gt;"ssl"&lt;/span&gt;)
sslElement.Properties.Item(&lt;span style="color: #800000;"&gt;"serverCertHash"&lt;/span&gt;).Value = &lt;span style="color: #800000;"&gt;"&lt;span style="background-color: #ffff00;"&gt;57686f6120447564652c2049495320526f636b73&lt;/span&gt;"&lt;/span&gt;
sslElement.Properties.Item(&lt;span style="color: #800000;"&gt;"controlChannelPolicy"&lt;/span&gt;).Value = &lt;span style="color: #800000;"&gt;"SslRequire"&lt;/span&gt;
sslElement.Properties.Item(&lt;span style="color: #800000;"&gt;"dataChannelPolicy"&lt;/span&gt;).Value = &lt;span style="color: #800000;"&gt;"SslRequire"&lt;/span&gt;

adminManager.CommitChanges

&lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt; FindElement(collection, elementTagName, valuesToMatch)
   &lt;span style="color: #0000ff;"&gt;For&lt;/span&gt; i = 0 &lt;span style="color: #0000ff;"&gt;To&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;CInt&lt;/span&gt;(collection.Count) - 1
      &lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; element = collection.Item(i)
      &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; element.Name = elementTagName &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;
         matches = &lt;span style="color: #0000ff;"&gt;True&lt;/span&gt;
         &lt;span style="color: #0000ff;"&gt;For&lt;/span&gt; iVal = 0 &lt;span style="color: #0000ff;"&gt;To&lt;/span&gt; UBound(valuesToMatch) &lt;span style="color: #0000ff;"&gt;Step&lt;/span&gt; 2
            &lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;property&lt;/span&gt; = element.GetPropertyByName(valuesToMatch(iVal))
            value = &lt;span style="color: #0000ff;"&gt;property&lt;/span&gt;.Value
            &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Not&lt;/span&gt; IsNull(value) &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;
               value = &lt;span style="color: #0000ff;"&gt;CStr&lt;/span&gt;(value)
            &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt;
            &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Not&lt;/span&gt; value = &lt;span style="color: #0000ff;"&gt;CStr&lt;/span&gt;(valuesToMatch(iVal + 1)) &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;
               matches = &lt;span style="color: #0000ff;"&gt;False&lt;/span&gt;
               &lt;span style="color: #0000ff;"&gt;Exit&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;For&lt;/span&gt;
            &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt;
         &lt;span style="color: #0000ff;"&gt;Next&lt;/span&gt;
         &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; matches &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;
            &lt;span style="color: #0000ff;"&gt;Exit&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;For&lt;/span&gt;
         &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt;
      &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt;
   &lt;span style="color: #0000ff;"&gt;Next&lt;/span&gt;
   &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; matches &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;
      FindElement = i
   &lt;span style="color: #0000ff;"&gt;Else&lt;/span&gt;
      FindElement = -1
   &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt;
&lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; Function&lt;/pre&gt;
&lt;p&gt;Once you have configured your FTP settings, you should have an FTP site that resembles the following in your ApplicationHost.config file:&lt;/p&gt;
&lt;pre style="margin-left: 20px; color: black; background-color: #ffffff;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;site&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ftp.contoso.com"&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="2"&amp;gt;&lt;/span&gt;
   &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;application&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;path&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="/"&amp;gt;&lt;/span&gt;
      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;virtualDirectory&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;path&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="/"&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;physicalPath&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="c:\inetpub\ftproot"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;application&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;
   &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;bindings&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;binding&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;protocol&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ftp"&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;bindingInformation&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="*:21:"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;bindings&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;
   &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ftpServer&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;security&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;
         &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ssl&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;serverCertHash&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="57686f6120447564652c2049495320526f636b73" &lt;/span&gt; &lt;span style="color: #ff0000;"&gt;ssl128&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="false" &lt;/span&gt; &lt;span style="color: #ff0000;"&gt;controlChannelPolicy&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="SslRequire" &lt;/span&gt; &lt;span style="color: #ff0000;"&gt;dataChannelPolicy&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="SslRequire"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;
         &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;authentication&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;basicAuthentication&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;enabled&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="false"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;anonymousAuthentication&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;enabled&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="false"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;clientCertAuthentication&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;enabled&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="true"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;
         &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;authentication&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;
         &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;sslClientCertificates &lt;/span&gt; &lt;span style="color: #ff0000;"&gt;clientCertificatePolicy&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="CertRequire" &lt;/span&gt; &lt;span style="color: #ff0000;"&gt;useActiveDirectoryMapping&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="true"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;security&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;
   &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ftpServer&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;site&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;More details about these settings can be found in the configuration reference articles that I mentioned in the beginning of this blog post, and additional information about configuring FTP over SSL can be found in the following walkthrough:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://learn.iis.net/page.aspx/304/using-ftp-over-ssl-in-iis-7/" target="_blank"&gt;Using FTP Over SSL in IIS 7&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a name="002"&gt;&lt;/a&gt;Configuring Active Directory Mapping&lt;/h3&gt;
&lt;p&gt;The next part of this process is kind of tricky; you need to accomplish all of the following:&lt;/p&gt;
&lt;ul style="line-height: 200%;"&gt;
&lt;li&gt;Obtain and install a client certificate on the system where your FTP client is installed. Hare some additional notes to consider:
&lt;ul&gt;
&lt;li&gt;This may involve setting up your client system to trust the CA that issued your client certificate.&lt;/li&gt;
&lt;li&gt;This may &lt;i&gt;also &lt;/i&gt;involve setting up your FTP server to trust the CA that issued both your client certificate and the server certificate that you are using for your FTP site.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Configure Active Directory to map the client certificate to an Active Directory account.&lt;/li&gt;
&lt;li&gt;Configure your FTP client to use a client certificate when connecting to your FTP server.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That makes it all sound so easy, but it can be very tricky. That being said, as I mentioned earlier, as I was putting together my notes to write this blog, I stumbled across a great blog series by &lt;a href="http://www.dotnetscraps.com/dotnetscraps/author/Vivek.aspx" target="_blank"&gt;Vivek Kumbhar&lt;/a&gt;, where he goes into great detail when describing all of the steps to set up the Active Directory mapping. With that in mind, instead of trying to rewrite what Vivek has already documented, I will include links to his blog series:&lt;/p&gt;
&lt;ul style="line-height: 200%;"&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://www.dotnetscraps.com/dotnetscraps/post/Did-you-know-Configure-Client-Certificate-Mapping-in-FTP-75-Part-1.aspx" target="_blank"&gt;Configure Client Certificate Mapping in FTP 7.5 - Part 1&lt;/a&gt;&lt;/b&gt;&lt;br /&gt; &lt;i&gt;Describes how to set up your Active Directory server, IIS server, and FTP client systems.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://www.dotnetscraps.com/dotnetscraps/post/Did-you-know-Configure-Client-Certificate-Mapping-in-FTP-7-FTP-75-Part-2.aspx" target="_blank"&gt;Configure Client Certificate Mapping in FTP 7.5 - Part 2&lt;/a&gt;&lt;/b&gt;&lt;br /&gt; &lt;i&gt;Walks you through obtaining and installing a server certificate, which you will use later for your FTP site.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://www.dotnetscraps.com/dotnetscraps/post/Did-you-know-Configure-Client-Certificate-Mapping-in-FTP-7-FTP-75-Part-3.aspx" target="_blank"&gt;Configure Client Certificate Mapping in FTP 7.5 - Part 3&lt;/a&gt;&lt;/b&gt;&lt;br /&gt; &lt;i&gt;Walks you through setting up an FTP site with SSL.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://www.dotnetscraps.com/dotnetscraps/post/Did-you-know-Configure-Client-Certificate-Mapping-in-FTP-7-FTP-75-Part-4.aspx" target="_blank"&gt;Configure Client Certificate Mapping in FTP 7.5 - Part 4&lt;/a&gt;&lt;/b&gt;&lt;br /&gt; &lt;i&gt;Describes how to configure Active Directory mapping for a user account.&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have to give Vivek full credit where it's due - he wrote a truly great blog series, and he included a lot more detail in his blog series than I had originally planned to include in this blog. (In my humble opinion, Vivek's blog series is the best documentation that I have seen for this feature.)&lt;/p&gt;
&lt;h3&gt;&lt;a name="003"&gt;&lt;/a&gt;Configuring your FTP Client&lt;/h3&gt;
&lt;p&gt;To test out client certificates, I used both the SmartFTP GUI-based FTP client and the MOVEit-Freely command-line FTP client; both of which I discussed in my &lt;i&gt;FTP Clients &lt;/i&gt;blog series some time ago.&lt;/p&gt;
&lt;h4&gt;Using the SmartFTP Client&lt;/h4&gt;
&lt;p&gt;To configure the SmartFTP client, I just needed to enable and specify the correct client certificate in the properties for my connection:&lt;/p&gt;
&lt;p style="margin-left: 20px;"&gt;&lt;a href="https://public.sn2.livefilestore.com/y1pzUP_BeuBmR6mgaai4ghuMvkGUcTobcYmPWcL6zokNKtE-U1oTiYGuc-9EbNuLV67-bnkHPYgtEBwl50pBGDu3w/SmartFTP_9.png" target="_blank"&gt;&lt;img border="2" src="https://public.sn2.livefilestore.com/y1pzUP_BeuBmR6mgaai4ghuMvkGUcTobcYmPWcL6zokNKtE-U1oTiYGuc-9EbNuLV67-bnkHPYgtEBwl50pBGDu3w/SmartFTP_9.png" width="400" height="368" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Using the MOVEit-Freely FTP Client&lt;/h4&gt;
&lt;p&gt;For the MOVEit-Freely FTP client, I just needed to specify the correct parameters on the command line:&lt;/p&gt;
&lt;pre style="margin-left: 20px;"&gt;ftps.exe -z -e:on -pfxfile:administrator.pfx -pfxpw:"P@ssw0rd" -user:anonymous -password:"someone@contoso.com"&lt;/pre&gt;
&lt;p&gt;The important settings are the &lt;code&gt;pfxfile&lt;/code&gt; and &lt;code&gt;pfxpw&lt;/code&gt; values, where &lt;code&gt;pfxfile&lt;/code&gt; is the name of the PFX file that holds your client certificate, and &lt;code&gt;pfxpw&lt;/code&gt; is the password for the PFX file. (The &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt; values will be ignored for the most part, because you will actually be logged in through your client certificate, so you can leave those as anonymous.)&lt;/p&gt;
&lt;h4&gt;Client Recap&lt;/h4&gt;
&lt;p&gt;For more information about these two FTP clients, see the following blog posts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blogs.iis.net/b/robert_mcmurray/archive/2010/05/07/ftp-clients-part-8-smartftp-client.aspx" target="_blank"&gt;FTP Clients - Part 8: SmartFTP Client&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.iis.net/b/robert_mcmurray/archive/2009/01/07/ftp-clients-part-5-moveit-freely-command-line-secure-ftp-client.aspx" target="_blank"&gt;FTP Clients - Part 5: MOVEit Freely Command-Line Secure FTP Client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Summary&lt;/h3&gt;
&lt;p&gt;FTP client certificates are definitely a bit of a challenge to configure correctly, but it's not an impossible task to get this feature working.&lt;/p&gt;
(Cross-posted from http://blogs.msdn.com/robert_mcmurray/)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4952759" width="1" height="1"&gt;</description><cs:applicationKey>robert_mcmurray</cs:applicationKey><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/FTP/default.aspx">FTP</category></item><item><title>NxtGenUG Manchester Slides</title><link>http://blogs.iis.net/hawaythelads/archive/2012/04/23/nxtgenug-manchester-slides.aspx</link><pubDate>Mon, 23 Apr 2012 21:59:17 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4947364</guid><dc:creator>IIS Blog Posts From Andrew Westgarth's Blog</dc:creator><slash:comments>0</slash:comments><description>Thanks to all the attendees who came to my talk on IIS8 last week at NxtGenUG Manchester Daresbury.&amp;#160; Apologies for the delay in posting the slides, you can now get them on my Slides &amp;amp; Resources page and the direct link for the IIS 8 Presentation slides is - http://www.andrewwestgarth.co.uk/Presentations/IIS%208%20–%20Platform%20for%20the%20Future.pdf...(&lt;a href="http://blogs.iis.net/hawaythelads/archive/2012/04/23/nxtgenug-manchester-slides.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4947364" width="1" height="1"&gt;</description><cs:applicationKey>hawaythelads</cs:applicationKey><category domain="http://blogs.iis.net/hawaythelads/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.iis.net/hawaythelads/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.iis.net/hawaythelads/archive/tags/UK+Community/default.aspx">UK Community</category></item><item><title>Orchard: Custom Content in Sub-Folders</title><link>http://bradkingsley.com/orchard-custom-content-in-sub-folders/</link><pubDate>Mon, 23 Apr 2012 14:53:36 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4946821</guid><dc:creator>Ponderings - Various Topical Thoughts by Brad Kingsley » IIS</dc:creator><slash:comments>0</slash:comments><description>Orchard doesn&amp;#8217;t seem to like anything in it&amp;#8217;s web root except for it&amp;#8217;s own content. Try it out &amp;#8211; create a folder (I created /TestContent/) and then put a test from there (I created test.html) and try to access it. &amp;#8230; Read more &amp;#187;...(&lt;a href="http://bradkingsley.com/orchard-custom-content-in-sub-folders/"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4946821" width="1" height="1"&gt;</description><cs:applicationKey>sbradk</cs:applicationKey><category domain="http://blogs.iis.net/sbradk/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.iis.net/sbradk/archive/tags/CMS/default.aspx">CMS</category><category domain="http://blogs.iis.net/sbradk/archive/tags/Cytanium/default.aspx">Cytanium</category><category domain="http://blogs.iis.net/sbradk/archive/tags/Hosting/default.aspx">Hosting</category><category domain="http://blogs.iis.net/sbradk/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.iis.net/sbradk/archive/tags/Orchard/default.aspx">Orchard</category><category domain="http://blogs.iis.net/sbradk/archive/tags/OrcsWeb/default.aspx">OrcsWeb</category><category domain="http://blogs.iis.net/sbradk/archive/tags/SysAdmin/default.aspx">SysAdmin</category><category domain="http://blogs.iis.net/sbradk/archive/tags/tip/default.aspx">tip</category><category domain="http://blogs.iis.net/sbradk/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://blogs.iis.net/sbradk/archive/tags/WebDev/default.aspx">WebDev</category></item><item><title>Extensibility Updates in the FTP 8.0 Service</title><link>http://blogs.iis.net/robert_mcmurray/archive/2012/04/20/extensibility-updates-in-the-ftp-8-0-service.aspx</link><pubDate>Fri, 20 Apr 2012 10:49:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4942714</guid><dc:creator>robmcm</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A few years ago I wrote a blog that was titled "&lt;i&gt;&lt;a href="http://blogs.iis.net/b/robert_mcmurray/archive/2009/04/23/blog-ftp-7-5-service-extensibility-references.aspx" target="_blank"&gt;FTP 7.5 Service Extensibility References&lt;/a&gt;&lt;/i&gt;", in which I discussed the extensibility APIs that we added in FTP 7.5. Over the next couple of years I followed that initial blog with a series of &lt;a href="http://learn.iis.net/page.aspx/590/" target="_blank"&gt;walkthroughs on IIS.net&lt;/a&gt; and several related blog posts. Here are just a few examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blogs.iis.net/b/robert_mcmurray/archive/2011/11/02/how-to-use-managed-code-c-to-create-an-ftp-home-directory-provider-that-is-based-on-the-remote-client-ip-address.aspx" target="_blank"&gt;How to use Managed Code (C#) to create an FTP Home Directory Provider that is based on the Remote Client IP Address&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.iis.net/b/robert_mcmurray/archive/2011/09/29/how-to-use-managed-code-csharp-to-create-an-ftp-home-directory-provider-for-the-days-of-the-week.aspx" target="_blank"&gt;How to Use Managed Code (C#) to Create an FTP Home Directory Provider for the Days of the Week&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.iis.net/b/robert_mcmurray/archive/2011/09/16/ftp-and-ldap-part-1-how-to-use-managed-code-c-to-create-an-ftp-authentication-provider-that-uses-an-ldap-server.aspx" target="_blank"&gt;FTP and LDAP - How to Use Managed Code (C#) to Create an FTP Authentication Provider that uses an LDAP Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.iis.net/b/robert_mcmurray/archive/2011/06/30/how-to-create-an-authentication-provider-for-ftp-7-5-using-blogengine-net-s-xml-membership-files.aspx" target="_blank"&gt;How to Create an Authentication Provider for FTP 7.5 using BlogEngine.NET's XML Membership Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.iis.net/b/robert_mcmurray/archive/2009/07/23/merging-ftp-extensibility-walkthroughs.aspx" target="_blank"&gt;Merging FTP Extensibility Walkthroughs - Part 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.iis.net/b/robert_mcmurray/archive/2009/08/19/merging-ftp-extensibility-walkthroughs-part-2.aspx" target="_blank"&gt;Merging FTP Extensibility Walkthroughs - Part 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.iis.net/b/robert_mcmurray/archive/2009/07/30/automatically-creating-checksum-files-for-ftp-uploads.aspx" target="_blank"&gt;Automatically Creating Checksum Files for FTP Uploads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.iis.net/b/robert_mcmurray/archive/2011/12/01/changing-the-identity-of-the-ftp-extensibility-process.aspx" target="_blank"&gt;Changing the Identity of the FTP 7 Extensibility Process&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In today's blog I'd like to discuss some of the extensibility features that we added in FTP 8.0, and show you how you can use those in your FTP providers.&lt;/p&gt;
&lt;h4&gt;Custom FTP Authorization&lt;/h4&gt;
&lt;p&gt;In FTP 7.5 we provided interfaces for &lt;code&gt;IFtpAuthenticationProvider&lt;/code&gt; and &lt;code&gt;IFtpRoleProvider&lt;/code&gt;, which respectively allowed developers to create FTP providers that performed user and role lookups. In FTP 8.0 we added a logical extension to that API set with &lt;code&gt;IFtpAuthorizationProvider&lt;/code&gt; interface, which allows developers to create FTP providers that perform authorization tasks.&lt;/p&gt;
&lt;p&gt;With that in mind, I wrote the following walkthrough on the IIS.net web site:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://learn.iis.net/page.aspx/945/how-to-use-managed-code-c-to-create-an-ftp-authentication-and-authorization-provider-using-an-xml-database/" target="_blank"&gt;How to Use Managed Code (C#) to Create an FTP Authentication and Authorization Provider using an XML Database&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The title pretty much says it all: the provider that I describe in that walkthrough will walk you through the steps that are required to create an FTP provider that provides custom user authentication, verification of role memberships, and authorization lookups on a per-path basis.&lt;/p&gt;
&lt;h4&gt;Custom FTP Event Handling&lt;/h4&gt;
&lt;p&gt;In FTP 7.5 if you wanted your provider to respond to specific user activity, the best way to do so was to implement the &lt;code&gt;IFtpLogProvider.Log()&lt;/code&gt; interface and use that to provide a form of pseudo-event handling. In FTP 8.0 we add two event handling interfaces, &lt;code&gt;IFtpPreprocessProvider&lt;/code&gt; and &lt;code&gt;IFtpPostprocessProvider&lt;/code&gt;, which respectively allow developers to write providers that implement functionality before or after events have occurred.&lt;/p&gt;
&lt;p&gt;With that in mind, I wrote the following walkthrough on the IIS.net web site:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://learn.iis.net/page.aspx/1285/how-to-use-managed-code-c-to-create-an-ftp-provider-that-prevents-leeching/" target="_blank"&gt;How to Use Managed Code (C#) to Create an FTP Provider that Prevents Leeching&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once again, the title says it all: the provider that I describe in that walkthrough will walk you through the steps that are required to create an FTP provider that prevents FTP clients from downloading more files per-session than you have allowed in your configuration settings.&lt;/p&gt;
&lt;p&gt;Happy coding!&lt;/p&gt;
(Cross-posted from http://blogs.msdn.com/robert_mcmurray/)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4942714" width="1" height="1"&gt;</description><cs:applicationKey>robert_mcmurray</cs:applicationKey><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/FTP/default.aspx">FTP</category><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/IIS/default.aspx">IIS</category></item><item><title>Google and Geo-location, CNDs, DNS Load Balancing-Week 50</title><link>http://blogs.iis.net/owscott/archive/2012/04/19/google-and-geo-location-cnds-dns-load-balancing-week-50.aspx</link><pubDate>Fri, 20 Apr 2012 01:24:18 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4941926</guid><dc:creator>Scott Forsyth's Blog : IIS</dc:creator><slash:comments>0</slash:comments><description>You can find this week’s video here . This week answers two Q&amp;amp;A questions from viewers. DNS Load Balancing and then some discussion and a walkthrough using Application Request Routing (ARR) for a Content Delivery Network (CDN). There’s a growing movement Read More......(&lt;a href="http://blogs.iis.net/owscott/archive/2012/04/19/google-and-geo-location-cnds-dns-load-balancing-week-50.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4941926" width="1" height="1"&gt;</description><cs:applicationKey>owscott</cs:applicationKey><category domain="http://blogs.iis.net/owscott/archive/tags/ARR/default.aspx">ARR</category><category domain="http://blogs.iis.net/owscott/archive/tags/DNS/default.aspx">DNS</category><category domain="http://blogs.iis.net/owscott/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.iis.net/owscott/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.iis.net/owscott/archive/tags/Web+Pro+Series/default.aspx">Web Pro Series</category></item><item><title>Announcing Windows Azure Media Services and MPEG-DASH support</title><link>http://blogs.iis.net/alexzam/archive/2012/04/19/announcing-windows-azure-media-services-and-mpeg-dash-support.aspx</link><pubDate>Thu, 19 Apr 2012 23:29:32 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4941892</guid><dc:creator>Alex Zambelli's Microsoft Media Blog » Internet Information Services</dc:creator><slash:comments>0</slash:comments><description>This week at the annual National Association of Broadcasters (NAB) Show in Las Vegas we made two big announcements: &amp;#8220;New cloud-based Windows Azure Media Services is designed to make creating, managing and delivering media to any device easier than ever by offering a comprehensive set of ready-to-use first- and third-party media technologies. [...] Taking advantage of the worldwide Windows Azure cloud infrastructure, Windows Azure Media Services gives content providers and media partners the...(&lt;a href="http://blogs.iis.net/alexzam/archive/2012/04/19/announcing-windows-azure-media-services-and-mpeg-dash-support.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4941892" width="1" height="1"&gt;</description><cs:applicationKey>alexzam</cs:applicationKey><category domain="http://blogs.iis.net/alexzam/archive/tags/DASH/default.aspx">DASH</category><category domain="http://blogs.iis.net/alexzam/archive/tags/IIS+Media+Services/default.aspx">IIS Media Services</category><category domain="http://blogs.iis.net/alexzam/archive/tags/Internet+Information+Services/default.aspx">Internet Information Services</category><category domain="http://blogs.iis.net/alexzam/archive/tags/media/default.aspx">media</category><category domain="http://blogs.iis.net/alexzam/archive/tags/MPEG-DASH/default.aspx">MPEG-DASH</category><category domain="http://blogs.iis.net/alexzam/archive/tags/Smooth+Streaming/default.aspx">Smooth Streaming</category><category domain="http://blogs.iis.net/alexzam/archive/tags/WAMS/default.aspx">WAMS</category><category domain="http://blogs.iis.net/alexzam/archive/tags/Windows+Azure+Media+Services/default.aspx">Windows Azure Media Services</category></item></channel></rss>
