<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/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/"><channel><title>Configuring HTTP for Windows Vista</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx</link><description>One of the major changes in Windows Vista security is that most people are no longer going to be running with Administrator privileges by default like they were doing on earlier platforms. This impacts your ability to run HTTP web services because listening</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>myITforum Daily Newsletter; October 16, 2006</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#831313</link><pubDate>Mon, 16 Oct 2006 16:06:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:831313</guid><dc:creator>myITforum Newsletters</dc:creator><description>&lt;p&gt;myITforum Daily Newsletter Daily Newsletter October 16, 2006 The myITforum.com newsletter is delivered&lt;/p&gt;
</description></item><item><title>re: Configuring HTTP for Windows Vista</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#831395</link><pubDate>Mon, 16 Oct 2006 17:28:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:831395</guid><dc:creator>Adam</dc:creator><description>&lt;p&gt;Hang on ... where and at what layer is this check performed?&lt;/p&gt;
&lt;p&gt;Does this mean that the user can't open a socket to listen on at port 8000 (or any other port?) and that this is enforced by the kernel?&lt;/p&gt;
&lt;p&gt;Or is the check performed by the web service process in userspace? In which case, what's to stop the user from either evading the check (copying the binary and patching it?) or just installing a different web server (apache?) to run the service from? Or writing their own?&lt;/p&gt;
&lt;p&gt;(Yes, a home-written one probably won't be fast, or stable, or scale very well, or be as extensible as IIS, or be usable as a transparent proxy, or.... but if it only needs to do one particular job....)&lt;/p&gt;
&lt;p&gt;Can you at least clarify &amp;quot;listening at a particular HTTP address&amp;quot;? I get listening on a TCP/IP port/address pair. I also get using HTTP over TCP/IP. But I don't see how an HTTP &amp;quot;address&amp;quot; is different from any other TCP/IP address.&lt;/p&gt;
&lt;p&gt;Very confused.&lt;/p&gt;</description></item><item><title>Use OneWay for Long-Running Operations</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#832340</link><pubDate>Mon, 16 Oct 2006 18:57:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:832340</guid><dc:creator>Nicholas Allen's Indigo Blog</dc:creator><description>&lt;p&gt;I have a long-running service operation that needs to receive a response. What options do I have for&lt;/p&gt;
</description></item><item><title>re: Configuring HTTP for Windows Vista</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#832363</link><pubDate>Mon, 16 Oct 2006 19:13:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:832363</guid><dc:creator>Nicholas Allen</dc:creator><description>&lt;p&gt;HTTP.sys is a kernel device driver for processing HTTP connections on XP SP2 and later. &amp;nbsp;Besides doing a lot of work for you, it also allows multiple applications to share the same TCP port. &amp;nbsp;You can configure the IP addresses and ports that HTTP.sys listens on. &amp;nbsp;Many pieces of Winodws (WCF, IIS 6 and later) are built on top of HTTP.sys.&lt;/p&gt;
</description></item><item><title>re: Configuring HTTP for Windows Vista</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#832450</link><pubDate>Mon, 16 Oct 2006 19:54:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:832450</guid><dc:creator>Adam</dc:creator><description>&lt;p&gt;Device driver? Huh? What device? Or does &amp;quot;device driver&amp;quot; == &amp;quot;kernel module&amp;quot;?&lt;/p&gt;
&lt;p&gt;You guys put an HTTP server in the kernel? Blech! :)&lt;/p&gt;
&lt;p&gt;How do multiple apps share the same TCP port? The best documentation I found on http.sys was &lt;a rel="nofollow" target="_new" href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/a2a45c42-38bc-464c-a097-d7a202092a54.mspx?mfr=true"&gt;http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/a2a45c42-38bc-464c-a097-d7a202092a54.mspx?mfr=true&lt;/a&gt; but it seems a little light on technical details. Is there anything more involved that you know of? If not, does this port-sharing work for any TCP port, or only ones with HTTP running over the top?&lt;/p&gt;
&lt;p&gt;Also, why would you *want* multiple apps on the same port? What's wrong with running different apps on different ports?&lt;/p&gt;</description></item><item><title>re: Configuring HTTP for Windows Vista</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#832560</link><pubDate>Mon, 16 Oct 2006 20:34:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:832560</guid><dc:creator>Nicholas Allen</dc:creator><description>&lt;p&gt;HTTP.sys is a protocol driver for HTTP traffic in the same sense that TCPIP.sys is a protocol driver for IP traffic. &amp;nbsp;HTTP.sys handles incoming connections on the TCP port and dispatches to applications based on the path in the HTTP request. &amp;nbsp;This lets me host &lt;a rel="nofollow" target="_new" href="http://mymachine/myapp1/"&gt;http://mymachine/myapp1/&lt;/a&gt; in IIS using ASMX and at the same time host &lt;a rel="nofollow" target="_new" href="http://mymachine/myapp2/"&gt;http://mymachine/myapp2/&lt;/a&gt; in WCF. &amp;nbsp;Businesses can have hundreds or even thousands of applications hosted on a single machine like this without opening every port in their firewall.&lt;/p&gt;
</description></item><item><title>re: Configuring HTTP for Windows Vista</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#834262</link><pubDate>Tue, 17 Oct 2006 11:40:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:834262</guid><dc:creator>Adam</dc:creator><description>&lt;p&gt;This is something I've never understood. What's wrong with opening ports in your firewall. If you have myapp1 running on port 8000 and myapp2 on port 8001, what disadvantage is there doing that over running them both on port 8000, or port 80?&lt;/p&gt;
&lt;p&gt;I can see plenty of advantages. Such as being able to use the firewall to limit source IPs that can connect to myapp1 while leaving myapp2 open to the world. Such as being able to move myapp1 to a different server and use destination NAT/port forwarding to make it transparent.&lt;/p&gt;
&lt;p&gt;The whole point of TCP ports is to allow multiple applications to run on a single interface. Why reinvent that as part of the HTTP namespace?&lt;/p&gt;</description></item><item><title>New and Notable 115</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#834965</link><pubDate>Tue, 17 Oct 2006 17:18:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:834965</guid><dc:creator>Sam Gentile</dc:creator><description>&lt;p&gt;There is so much I want to say about important topics like Rocky's well-written, thought provoking Semantic&lt;/p&gt;
</description></item><item><title>New and Notable Links : Oct 11 - 16 2006</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#838362</link><pubDate>Wed, 18 Oct 2006 12:23:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:838362</guid><dc:creator>Dan's Archive</dc:creator><description /></item><item><title>re: Configuring HTTP for Windows Vista</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#839721</link><pubDate>Wed, 18 Oct 2006 21:10:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:839721</guid><dc:creator>Nicholas Allen</dc:creator><description>&lt;p&gt;That's an arms race between firewall administrators, who want to keep all traffic out, and application developers, who want to let all traffic through. &amp;nbsp;As firewalls offer more ways of restricting or filtering, application developers get more creative in tunneling their applications through innocuous data streams.&lt;/p&gt;
&lt;p&gt;From a user perspective though, having to remember a different port number for each service is pretty bad. &amp;nbsp;Putting everything at the same server address with a memorable path name is an attractive solution. &amp;nbsp;The alternative is virtual hosting each app with a different dns address, which gets back to a similar battle with corporate administrators.&lt;/p&gt;
&lt;p&gt;It also saves some resources for hosts if they multiplex off a single port.&lt;/p&gt;
</description></item><item><title>re: Configuring HTTP for Windows Vista</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#843156</link><pubDate>Thu, 19 Oct 2006 11:57:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:843156</guid><dc:creator>Adam</dc:creator><description>&lt;p&gt;I think that's a bit of an overstatement on both sides.&lt;/p&gt;
&lt;p&gt;App developers don't want to let *all* traffic through, just the traffic for the apps that they need/are developing. In fact, as a developer, I hardly ever need holes in a firewall while I'm *developing* apps - that's what internal test environments are for. But when it comes to external testing, sure, they need a hole in the firewall, but just one tiny hole, on a single port, to a single server.&lt;/p&gt;
&lt;p&gt;Similarly, firewall admins generally don't want to keep *all* traffic out, they want to keep *unwanted* traffic out. But how they keep track of what traffic is wanted and what isn't? If it all looks the same and comes in over the same channel (HTTP over port 80), how can they tell what's wanted and what isn't? How can they ask an app developer if they're finished external testing of &amp;quot;fooble&amp;quot; and can they close off access to that *single* app now if there's no way to figure out which traffic is for &amp;quot;fooble&amp;quot; and which is for &amp;quot;bazzle&amp;quot;?&lt;/p&gt;
&lt;p&gt;And if someone wants to run a service with known security holes open to the world on a server? If they ask for a new port to be opened for it, the firewall admins do their job, find the CVEs for it and turn the request down, great! Security is maintained. If they just hang it off another HTTP &amp;quot;subdirectory&amp;quot; and the network gets trashed - oops!&lt;/p&gt;
&lt;p&gt;Running different apps off different ports allows you to audit what services are available to whom and where they're hosted in a single place - the firewall. Tunneling other protocols through/routing around the firewall defeats the entire purpose of having one!&lt;/p&gt;
&lt;p&gt;I find that it interesting that MS appear to be coming down on the side of helping developers circumvent their own companies' security policies. Still, those pesky security experts! What do they know? They're way too paranoid and only get in the way.&lt;/p&gt;
&lt;p&gt;Yeah, right.&lt;/p&gt;
&lt;p&gt;Good to see that &amp;quot;secure by design, secure by default&amp;quot; policy shining through.&lt;/p&gt;
&lt;p&gt;And I don't see how users find remembering ports any different from remembering other server data - they don't. When I get sent connection info for a service, I don't remember it, I keep the email with the URL and copy and paste as appropriate. If someone else needs the URL, I forward it to them. And what's so different about copy-and-pasting the followign URLs?&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://server.domain.com/myapp"&gt;http://server.domain.com/myapp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="https://server.domain.com:82/"&gt;https://server.domain.com:82/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I'm not sure about what resources can be saved by multiplexing. Could you elaborate on that?&lt;/p&gt;</description></item><item><title>Advanced URL ACLing with Windows Vista</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#923977</link><pubDate>Wed, 01 Nov 2006 19:18:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:923977</guid><dc:creator>Nicholas Allen's Indigo Blog</dc:creator><description>&lt;p&gt;This article covers some of the advanced topics that I left out of the earlier piece on configuring HTTP&lt;/p&gt;
</description></item><item><title>Deploying WCF in a Windows Service</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#1327123</link><pubDate>Tue, 19 Dec 2006 22:49:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1327123</guid><dc:creator>using Colin.Bowern;</dc:creator><description>&lt;p&gt;I deployed my first WCF service as a Windows Service today. It wasn't as straight forward as I...&lt;/p&gt;
</description></item><item><title>2006 Year in Review</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#1405499</link><pubDate>Wed, 03 Jan 2007 21:07:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1405499</guid><dc:creator>Nicholas Allen's Indigo Blog</dc:creator><description>&lt;p&gt;I started this blog back in February hoping to produce a daily post throughout the entire month. I had&lt;/p&gt;</description></item><item><title>Configuring HTTP in Windows Vista</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#1440244</link><pubDate>Tue, 09 Jan 2007 23:45:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1440244</guid><dc:creator>Govind's WebLog</dc:creator><description>&lt;p&gt;Hosting a WCF service on a HTTP endpoint on Windows Vista has some issues given that you are not running&lt;/p&gt;
</description></item><item><title>AddressAccessDeniedException: HTTP could not register URL http://+:8080/&lt;…&gt;.</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#2417268</link><pubDate>Sat, 05 May 2007 02:47:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2417268</guid><dc:creator>PaulWh's Tech Blog</dc:creator><description>&lt;p&gt;A while back, when I was first doing WCF development I ran into the following exception: AddressAccessDeniedException&lt;/p&gt;
</description></item><item><title>Don't Run as Administrator</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#4815965</link><pubDate>Fri, 07 Sep 2007 23:43:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4815965</guid><dc:creator>Nicholas Allen's Indigo Blog</dc:creator><description>&lt;p&gt;I want to run this post as a reminder to people building and deploying services. I see people deploy&lt;/p&gt;
</description></item><item><title>New and Notable 115</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#5114119</link><pubDate>Tue, 25 Sep 2007 10:05:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5114119</guid><dc:creator>Sam Gentile</dc:creator><description>&lt;p&gt;There is so much I want to say about important topics like Rocky&amp;amp;#39;s well-written, thought provoking&lt;/p&gt;</description></item><item><title>Enabling HttpListeners for Non-Admins</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#8784268</link><pubDate>Mon, 28 Jul 2008 16:50:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8784268</guid><dc:creator>Dan's Archive</dc:creator><description>&lt;p&gt;Enabling HttpListeners for Non-Admins&lt;/p&gt;
</description></item><item><title>#.think.in infoDose #28 (29th Apr - 8th May)</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#9618090</link><pubDate>Fri, 15 May 2009 11:32:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9618090</guid><dc:creator>#.think.in</dc:creator><description>&lt;p&gt;#.think.in infoDose #28 (29th Apr - 8th May)&lt;/p&gt;
</description></item><item><title>#.think.in infoDose #28 (29th Apr - 8th May)</title><link>http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx#9666478</link><pubDate>Sun, 31 May 2009 01:12:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9666478</guid><dc:creator>#.think.in</dc:creator><description>&lt;p&gt;#.think.in infoDose #28 (29th Apr - 8th May)&lt;/p&gt;
</description></item></channel></rss>