<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: InstanceContextMode, ConcurrencyMode, and Server-side Threading</title>
	<link>http://kennyw.com/indigo/178</link>
	<description>Kenny Wolf's Thoughts of the Moment</description>
	<pubDate>Thu, 08 Jan 2009 13:20:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.2</generator>

	<item>
		<title>By: Chris</title>
		<link>http://kennyw.com/indigo/178#comment-118232</link>
		<author>Chris</author>
		<pubDate>Wed, 16 Jul 2008 14:19:41 +0000</pubDate>
		<guid>http://kennyw.com/indigo/178#comment-118232</guid>
		<description>Your summary of the instancing and concurrency knobs was really helpful.  Thanks for posting this!</description>
		<content:encoded><![CDATA[<p>Your summary of the instancing and concurrency knobs was really helpful.  Thanks for posting this!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kenny</title>
		<link>http://kennyw.com/indigo/178#comment-96419</link>
		<author>Kenny</author>
		<pubDate>Sat, 05 Apr 2008 20:09:19 +0000</pubDate>
		<guid>http://kennyw.com/indigo/178#comment-96419</guid>
		<description>Oskar, the base address is chosen by your vdir settings in IIS. Do you not have a publicly consumable DNS name?</description>
		<content:encoded><![CDATA[<p>Oskar, the base address is chosen by your vdir settings in IIS. Do you not have a publicly consumable DNS name?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Oskar</title>
		<link>http://kennyw.com/indigo/178#comment-65150</link>
		<author>Oskar</author>
		<pubDate>Mon, 03 Sep 2007 15:38:17 +0000</pubDate>
		<guid>http://kennyw.com/indigo/178#comment-65150</guid>
		<description>Hi Kenny,

Your blog came up on a google search I did, I hope you can help me.

When hosting a service in IIS, how does WCF choose the base address? If I surf the service behind the firewall, I get http://[computername]/MyService/Service.svc in the import schema links in the wsdl AND if I'm outside the firewall I get the same internal links. 

Because of this it is not possible to use svcutil to create the client because the computer name is of course not know outside the firewall. If I add the external IP as the host header it works, but that will not be possible in this scenario. And if I have two host headers I get the error described by Sri above. 

Is there a solution to this problem?

Thank you,
Oskar</description>
		<content:encoded><![CDATA[<p>Hi Kenny,</p>
<p>Your blog came up on a google search I did, I hope you can help me.</p>
<p>When hosting a service in IIS, how does WCF choose the base address? If I surf the service behind the firewall, I get <a href="http://[computername]/MyService/Service.svc" rel="nofollow">http://[computername]/MyService/Service.svc</a> in the import schema links in the wsdl AND if I&#8217;m outside the firewall I get the same internal links. </p>
<p>Because of this it is not possible to use svcutil to create the client because the computer name is of course not know outside the firewall. If I add the external IP as the host header it works, but that will not be possible in this scenario. And if I have two host headers I get the error described by Sri above. </p>
<p>Is there a solution to this problem?</p>
<p>Thank you,<br />
Oskar</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kennyw.com &#187; Blog Archive &#187; Throttling in WCF</title>
		<link>http://kennyw.com/indigo/178#comment-62282</link>
		<author>kennyw.com &#187; Blog Archive &#187; Throttling in WCF</author>
		<pubDate>Wed, 08 Aug 2007 01:04:10 +0000</pubDate>
		<guid>http://kennyw.com/indigo/178#comment-62282</guid>
		<description>[...] by your binding. To fully understand the impact of these throttles you should also understand the threading/instancing characteristics of your [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] by your binding. To fully understand the impact of these throttles you should also understand the threading/instancing characteristics of your [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kenny</title>
		<link>http://kennyw.com/indigo/178#comment-61610</link>
		<author>Kenny</author>
		<pubDate>Thu, 02 Aug 2007 21:36:50 +0000</pubDate>
		<guid>http://kennyw.com/indigo/178#comment-61610</guid>
		<description>Greg, can you try setting MaxConcurrentCalls to 1? With WCF throttles, we will often read ahead and so while we're processing a single message, another one will get queued up....</description>
		<content:encoded><![CDATA[<p>Greg, can you try setting MaxConcurrentCalls to 1? With WCF throttles, we will often read ahead and so while we&#8217;re processing a single message, another one will get queued up&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kenny</title>
		<link>http://kennyw.com/indigo/178#comment-61608</link>
		<author>Kenny</author>
		<pubDate>Thu, 02 Aug 2007 21:34:58 +0000</pubDate>
		<guid>http://kennyw.com/indigo/178#comment-61608</guid>
		<description>Sri, this is a known limitation of WCF v1. Basically if you specify multiple bindings for the same protocol in IIS for the same web site, we will automatically generate multiple base addresses for the same protocol. However, when we pass the list of addresses to ServiceHost constructor, it throws the error that you indicated in your email below. The reason is that ServiceHost uses the protocol as the key for the BaseAddresses collection. This has been fixed in Orcas.</description>
		<content:encoded><![CDATA[<p>Sri, this is a known limitation of WCF v1. Basically if you specify multiple bindings for the same protocol in IIS for the same web site, we will automatically generate multiple base addresses for the same protocol. However, when we pass the list of addresses to ServiceHost constructor, it throws the error that you indicated in your email below. The reason is that ServiceHost uses the protocol as the key for the BaseAddresses collection. This has been fixed in Orcas.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg</title>
		<link>http://kennyw.com/indigo/178#comment-58874</link>
		<author>Greg</author>
		<pubDate>Sat, 14 Jul 2007 00:03:35 +0000</pubDate>
		<guid>http://kennyw.com/indigo/178#comment-58874</guid>
		<description>I've got a WCF service that uses net.msmq, and I've set InstanceContextMode = Single.  I have multiple servers watching the same queue, and noticed something strange.  If my client makes 4 requests, and I have two servers, each of them will take 2 requests.  But the first request takes longer than the other 3 combined.  What I've got is one server that finished its two requests quickly, and one server that slowly works on its first request, and finally the second.  Meanwhile, the other server could have completed the final request, but was unable to since it was popped off the queue.

Client: queue a job that takes 20 seconds
Client: queue 3 jobs that take 5 seconds each

Server1: process 20 second job
Server2: process 5 second job
Server2: process 5 second job
Server1: process 5 second job

Total time: 25 seconds, when it could have optimally completed in 20 seconds.

It seems to me if I say InstanceContextMode = Single, each server should only claim one job, complete that, and then see if there is more work to do.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve got a WCF service that uses net.msmq, and I&#8217;ve set InstanceContextMode = Single.  I have multiple servers watching the same queue, and noticed something strange.  If my client makes 4 requests, and I have two servers, each of them will take 2 requests.  But the first request takes longer than the other 3 combined.  What I&#8217;ve got is one server that finished its two requests quickly, and one server that slowly works on its first request, and finally the second.  Meanwhile, the other server could have completed the final request, but was unable to since it was popped off the queue.</p>
<p>Client: queue a job that takes 20 seconds<br />
Client: queue 3 jobs that take 5 seconds each</p>
<p>Server1: process 20 second job<br />
Server2: process 5 second job<br />
Server2: process 5 second job<br />
Server1: process 5 second job</p>
<p>Total time: 25 seconds, when it could have optimally completed in 20 seconds.</p>
<p>It seems to me if I say InstanceContextMode = Single, each server should only claim one job, complete that, and then see if there is more work to do.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sri Vasan</title>
		<link>http://kennyw.com/indigo/178#comment-55958</link>
		<author>Sri Vasan</author>
		<pubDate>Tue, 26 Jun 2007 17:30:59 +0000</pubDate>
		<guid>http://kennyw.com/indigo/178#comment-55958</guid>
		<description>Hi Kenny,
I have a question about host headers in IIS. When I host a wcf service on a website with multiple host headers.  it fails with the following error " This collection already contains an address with scheme http.  There can be at most one address per scheme in this collection. ".  Can you pls explain what is the reasoning behind this limitation?
thanks</description>
		<content:encoded><![CDATA[<p>Hi Kenny,<br />
I have a question about host headers in IIS. When I host a wcf service on a website with multiple host headers.  it fails with the following error &#8221; This collection already contains an address with scheme http.  There can be at most one address per scheme in this collection. &#8220;.  Can you pls explain what is the reasoning behind this limitation?<br />
thanks</p>
]]></content:encoded>
	</item>
</channel>
</rss>
