<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IIS &#8211; Xojo Programming Blog</title>
	<atom:link href="https://blog.xojo.com/tag/iis/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.xojo.com</link>
	<description>Blog about the Xojo programming language and IDE</description>
	<lastBuildDate>Tue, 31 Mar 2026 20:18:09 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Hosting a Xojo Web Application Behind IIS</title>
		<link>https://blog.xojo.com/2022/10/20/hosting-a-xojo-web-application-behind-iis/</link>
		
		<dc:creator><![CDATA[Wayne Golding]]></dc:creator>
		<pubDate>Thu, 20 Oct 2022 13:00:00 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Guest Post]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Installer]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=10897</guid>

					<description><![CDATA[Wayne Golding]]></description>
										<content:encoded><![CDATA[
<p>On July 1<sup>st</sup>, 2022, Microsoft withdrew the Web Platform Installer and plans to remove it and its catalogues from servers on December 31<sup>st</sup>, 2022.&nbsp; You can read more about this at <a href="https://blogs.iis.net/iisteam/web-platform-installer-end-of-support-feed">IIS Team Blog &#8211; Web Platform Installer &#8211; End of support and sunsetting the product/application feed</a>.&nbsp; The following instructions show you how to continue to host Xojo Web Applications behind IIS.</p>



<p>There are four parts to this article: Part 1 prepares the server for reverse proxy, Part 2 installs the Web Application and create a Windows Service for that app, Part 3 configures the Web Site and, finally, Part 4 looks at setting up the DNS record.</p>



<p>These instructions have been tested on Windows 2016, 2019 and 2022 servers. &nbsp;</p>



<h3 class="wp-block-heading">Part 1: Preparing the Server for Reverse Proxy</h3>



<ol class="wp-block-list"><li>Add the Web Server Role to your server.&nbsp; This is done through the Server Manager application.&nbsp; Default selections have been used.</li></ol>



<figure class="wp-block-image size-full is-style-default"><img fetchpriority="high" decoding="async" width="902" height="644" src="https://blog.xojo.com/wp-content/uploads/2022/10/image.png" alt="" class="wp-image-10898" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image.png 902w, https://blog.xojo.com/wp-content/uploads/2022/10/image-300x214.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/image-768x548.png 768w" sizes="(max-width: 902px) 100vw, 902px" /></figure>



<ol class="wp-block-list" start="2"><li>Download the URL Rewrite component from <a href="https://www.iis.net/downloads/microsoft/url-rewrite">https://www.iis.net/downloads/microsoft/url-rewrite</a> and install it.</li><li>Download the Application Request Routing (ARR) component from <a href="https://www.iis.net/downloads/microsoft/application-request-routing">https://www.iis.net/downloads/microsoft/application-request-routing</a> and install it.</li></ol>



<p>Your server is now ready to host Web Applications behind IIS.</p>



<h3 class="wp-block-heading">Part 2: Installing the Web Application and Configuring the Windows Service</h3>



<p>As Xojo built applications are stand-alone, it is simply a matter of copying the application to the server. Typically, the location will be C:\Program Files\&lt;Your Company Name&gt;\&lt;Your Application Name&gt;.</p>



<p>To create the Windows Service, you’ll need to run CMD As Administrator and enter the following commands.&nbsp; I have used Demo Company and Demo Application.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<pre class="wp-block-preformatted">SC Create Demo binpath= “C:\Program Files\Demo Company\Demo Application\Demo Application.exe –port=8080” Start= auto
SC Description Demo “Demo Web Application”
SC Failure Demo actions=restart/2000/restart/2000/restart/2000 reset=10
SC FailureFlag Demo 1
SC Start Demo</pre>
</div></div>



<pre class="wp-block-preformatted">SC Create creates the service setting the path to the binary (executable file) specifying Port 8080 and configuring the service to start with the server.</pre>



<pre class="wp-block-preformatted">SC Description sets the long description for the service and is optional</pre>



<pre class="wp-block-preformatted">SC Failure configures how the controller will handle service crashes.&nbsp; In this case the service will be restarted after 2seconds for the first, second and subsequent failures.&nbsp; The failure count will be reset after 10 seconds.</pre>



<pre class="wp-block-preformatted">SC FailureFlag configures the service to treat app crashes as service crashes.&nbsp; Without this the controller won’t execute the failure actions set previously</pre>



<pre class="wp-block-preformatted">SC Start simply starts the service.</pre>



<h3 class="wp-block-heading">Part 3: Configuring the Web Site</h3>



<p>First, you’ll need to create the website using Internet Information Server Manager:</p>



<figure class="wp-block-image size-full is-style-default"><img decoding="async" width="1424" height="752" src="https://blog.xojo.com/wp-content/uploads/2022/10/image-1.png" alt="" class="wp-image-10899" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image-1.png 1424w, https://blog.xojo.com/wp-content/uploads/2022/10/image-1-300x158.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/image-1-1024x541.png 1024w, https://blog.xojo.com/wp-content/uploads/2022/10/image-1-768x406.png 768w" sizes="(max-width: 1424px) 100vw, 1424px" /></figure>



<p>Next, you’ll add a reverse proxy rule using the URL Rewrite function:</p>



<figure class="wp-block-image size-full is-style-default"><img decoding="async" width="1425" height="751" src="https://blog.xojo.com/wp-content/uploads/2022/10/image-2.png" alt="" class="wp-image-10900" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image-2.png 1425w, https://blog.xojo.com/wp-content/uploads/2022/10/image-2-300x158.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/image-2-1024x540.png 1024w, https://blog.xojo.com/wp-content/uploads/2022/10/image-2-768x405.png 768w" sizes="(max-width: 1425px) 100vw, 1425px" /></figure>



<p>Select Add Rule:</p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="1426" height="750" src="https://blog.xojo.com/wp-content/uploads/2022/10/image-3.png" alt="" class="wp-image-10901" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image-3.png 1426w, https://blog.xojo.com/wp-content/uploads/2022/10/image-3-300x158.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/image-3-1024x539.png 1024w, https://blog.xojo.com/wp-content/uploads/2022/10/image-3-768x404.png 768w" sizes="auto, (max-width: 1426px) 100vw, 1426px" /></figure>



<p>Select Reverse Proxy:</p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="902" height="608" src="https://blog.xojo.com/wp-content/uploads/2022/10/image-4.png" alt="" class="wp-image-10902" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image-4.png 902w, https://blog.xojo.com/wp-content/uploads/2022/10/image-4-300x202.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/image-4-768x518.png 768w" sizes="auto, (max-width: 902px) 100vw, 902px" /></figure>



<p>And finally configure the rule:</p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="850" height="860" src="https://blog.xojo.com/wp-content/uploads/2022/10/image-5.png" alt="" class="wp-image-10903" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image-5.png 850w, https://blog.xojo.com/wp-content/uploads/2022/10/image-5-297x300.png 297w, https://blog.xojo.com/wp-content/uploads/2022/10/image-5-768x777.png 768w" sizes="auto, (max-width: 850px) 100vw, 850px" /></figure>



<p>127.0.0.1 is the local machine and 8080 is the port configured in the service.</p>



<h3 class="wp-block-heading">Part 4: DNS</h3>



<p>For the client browsers to find the site you need to add a record to your Domain Name Server.</p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="902" height="856" src="https://blog.xojo.com/wp-content/uploads/2022/10/image-6.png" alt="" class="wp-image-10904" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image-6.png 902w, https://blog.xojo.com/wp-content/uploads/2022/10/image-6-300x285.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/image-6-768x729.png 768w" sizes="auto, (max-width: 902px) 100vw, 902px" /></figure>



<p>You can see here I’m adding a CNAME record to the DNS Manager.&nbsp; The fully qualified domain name matches the website name, and the site is hosted on a machine called WebServer.&nbsp; We use a CNAME record which is an alias of the WebServer A record so that if the WebServer ip address was changed all the sites would automatically follow.</p>



<p><em>Wayne Golding has been a Xojo developer since 2005 and is a Xojo MVP. He operates the IT Company <a href="http://www.axisdirect.nz">Axis Direct Ltd </a>which primarily develops applications using Xojo that integrate with Xero www.xero.com. Wayne’s hobby is robotics where he uses Xojo to build applications for his Raspberry Pi, often implementing IoT for remote control.</em></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
