Note that there are some explanatory texts on larger screens.

plurals
  1. POHosting a WCF service in IIS in a single site using tcp binding and multiple ports
    primarykey
    data
    text
    <p>I have a performance issue with WCF services hosted in IIS using net.tcp bindings.</p> <p>We recently ported our system from COM+ to WCF and tests indicate a performance degradation. I've been looking at performance counters on the server and the CPU utilisation is very low (&lt; 10%), there is plenty of available memory, disk reads are normal etc... I also checked WCF performance counters and the number of outstanding calls is low (at most 1 at any given time), number of calls per second is quite low (16 calls per second for a service that is being used the most by the system). All of our services are configured to be per call and single threaded...</p> <p>I have already played around with throttling and set all values for all of the settings to 100 (the server is an 8 core machine and my understanding is that the actual throttling values end up being what you set multiplied by the number of CPU). I don't think there is an issue there.</p> <p>I have also made sure that the client is using it's connections efficiently (not creating new ones where there is an existing tcp connection that can be used)</p> <p>The current web application hosts about 50 services (yep, that is 50!) and at the moment I am trying to eliminate this as the source of the problem. I am looking into hosting the services in multiple web applications and I'd also like to have them use different ports but I am having some problems with that and I can't find a step by step instructions on the internet anywhere so I am hoping somebody here will be able to help me :)</p> <p>Here is what I've tried to do so far:<br> 1) I added another binding to Default Web Site in IIS (that is I've got two net.tcp bindings, one is set to use "808:&#42;" binding information and the other one uses "809:&#42;") 2) I've made sure these ports are allowed to go through the firewall<br> 3) Then I've tried to configure each individual web application to filter ports (this is a snippet from web.config where I want to use port 808): </p> <blockquote> <p>&lt;serviceHostingEnvironment&gt;<br> &lt;baseAddressPrefixFilters&gt;<br> &lt;add prefix="net.tcp//&lt;servername>:808"/&gt;<br> &lt;/baseAddressPrefixFilters&gt;<br> &lt;/serviceHostingEnvironment&gt; </p> </blockquote> <p>When I try to connect to this service I get a <em>The service at the endpoint address 'net.tcp://&lt;servername&gt;/SomeService.svc' is unavailable for the protocol of the address</em></p> <p>If I remove the &lt;serviceHostingEnvironmentgt; bit. What am I doing wrong here?</p> <p>Other service, for example the ones that I want to be available on port 809 are not available at all, the error message I get telling me that the endpoint does not exist, it looks like IIS is not listening on that port at all. The firewall, as already mentioned, definitely allows this port through.</p> <p>Any ideas or perhaps suggestions on what the best setup when having this many services hosted would be are much appreciated!</p> <p>Thanks!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload