<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: InstanceContextMode, ConcurrencyMode, and Server-side Threading</title>
	<atom:link href="http://kennyw.com/work/indigo/178/feed" rel="self" type="application/rss+xml" />
	<link>http://kennyw.com/work/indigo/178</link>
	<description>Kenny Wolf</description>
	<lastBuildDate>Thu, 02 Feb 2012 02:21:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Chris B.</title>
		<link>http://kennyw.com/work/indigo/178/comment-page-1#comment-222635</link>
		<dc:creator>Chris B.</dc:creator>
		<pubDate>Thu, 11 Nov 2010 15:26:15 +0000</pubDate>
		<guid isPermaLink="false">http://kennyw.com/indigo/178#comment-222635</guid>
		<description>Thanks for this article -- still helpful 3+ years on. In particular, this little gotcha had me hooked:

&quot;There’s one possibly unexpected twist here. That is, when using a session-ful binding there will only be one outstanding instance call per-channel. Even with InstanceContextMode.PerCall. This is because WCF strictly maintains the in-order delivery guarantees of the channel with ConcurrencyMode.Single.&quot;

Thanks again for the help.</description>
		<content:encoded><![CDATA[<p>Thanks for this article &#8212; still helpful 3+ years on. In particular, this little gotcha had me hooked:</p>
<p>&#8220;There’s one possibly unexpected twist here. That is, when using a session-ful binding there will only be one outstanding instance call per-channel. Even with InstanceContextMode.PerCall. This is because WCF strictly maintains the in-order delivery guarantees of the channel with ConcurrencyMode.Single.&#8221;</p>
<p>Thanks again for the help.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Throttling in WCF &#171; Bhavin Patel</title>
		<link>http://kennyw.com/work/indigo/178/comment-page-1#comment-208493</link>
		<dc:creator>Throttling in WCF &#171; Bhavin Patel</dc:creator>
		<pubDate>Tue, 27 Jul 2010 00:36:48 +0000</pubDate>
		<guid isPermaLink="false">http://kennyw.com/indigo/178#comment-208493</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>[...] by your binding. To fully understand the impact of these throttles you should also understand the threading/instancing characteristics of your [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris</title>
		<link>http://kennyw.com/work/indigo/178/comment-page-1#comment-118232</link>
		<dc:creator>Chris</dc:creator>
		<pubDate>Wed, 16 Jul 2008 14:19:41 +0000</pubDate>
		<guid isPermaLink="false">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/work/indigo/178/comment-page-1#comment-96419</link>
		<dc:creator>Kenny</dc:creator>
		<pubDate>Sat, 05 Apr 2008 20:09:19 +0000</pubDate>
		<guid isPermaLink="false">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/work/indigo/178/comment-page-1#comment-65150</link>
		<dc:creator>Oskar</dc:creator>
		<pubDate>Mon, 03 Sep 2007 15:38:17 +0000</pubDate>
		<guid isPermaLink="false">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&#039;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/work/indigo/178/comment-page-1#comment-62282</link>
		<dc:creator>kennyw.com &#187; Blog Archive &#187; Throttling in WCF</dc:creator>
		<pubDate>Wed, 08 Aug 2007 01:04:10 +0000</pubDate>
		<guid isPermaLink="false">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>[...] by your binding. To fully understand the impact of these throttles you should also understand the threading/instancing characteristics of your [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kenny</title>
		<link>http://kennyw.com/work/indigo/178/comment-page-1#comment-61610</link>
		<dc:creator>Kenny</dc:creator>
		<pubDate>Thu, 02 Aug 2007 21:36:50 +0000</pubDate>
		<guid isPermaLink="false">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&#039;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/work/indigo/178/comment-page-1#comment-61608</link>
		<dc:creator>Kenny</dc:creator>
		<pubDate>Thu, 02 Aug 2007 21:34:58 +0000</pubDate>
		<guid isPermaLink="false">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/work/indigo/178/comment-page-1#comment-58874</link>
		<dc:creator>Greg</dc:creator>
		<pubDate>Sat, 14 Jul 2007 00:03:35 +0000</pubDate>
		<guid isPermaLink="false">http://kennyw.com/indigo/178#comment-58874</guid>
		<description>I&#039;ve got a WCF service that uses net.msmq, and I&#039;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&#039;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/work/indigo/178/comment-page-1#comment-55958</link>
		<dc:creator>Sri Vasan</dc:creator>
		<pubDate>Tue, 26 Jun 2007 17:30:59 +0000</pubDate>
		<guid isPermaLink="false">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 &quot; This collection already contains an address with scheme http.  There can be at most one address per scheme in this collection. &quot;.  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>

