We are using Spring.Net 1.3.0 and instantiating the WCF services as described in chapter 29 of Spring.Net reference manual.

If we use WCF with Spring.Net the first call to the service takes about 21 seconds.

If we use WCF without spring.net first call to the service takes about 3 seconds.

Sprng.Net Instantiation
=================

ScoreBasedSalesOrganizationProfileService.svc file

Code:
<%@ ServiceHost Service="ScoreBasedSalesOrganizationProfileService" Factory="Spring.ServiceModel.Activation.ServiceHostFactory, Spring.Services"%> 
<%@ Assembly Name="Com.Honda.Auto.APEX.Services.Impl" %>
Service configuration

Code:
<service behaviorConfiguration="Com.Honda.Auto.APEX.Services.Hosting.DefaultServiceBehavior"
name="ScoreBasedSalesOrganizationProfileService">
    <endpoint address="" binding="wsHttpBinding" contract="Com.Honda.Auto.APEX.ProfileMaintenance.Services.Contracts.IScoreBasedSalesOrganizationProfileService" >
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>

  <object id="ScoreBasedSalesOrganizationProfileService" type="Com.Honda.Auto.APEX.ProfileMaintenance.Services.Impl.ScoreBasedSalesOrganizationProfileService,Com.Honda.Auto.APEX.Services.Impl"
  singleton="false">
  </object>

Normal Instantiation
===============

ScoreBasedSalesOrganizationProfileService.svc file

Code:
<%@ServiceHost language=c# Debug="true" Service="Com.Honda.Auto.APEX.ProfileMaintenance.Services.Impl.ScoreBasedSalesOrganizationProfileService"%>
<%@ Assembly Name="Com.Honda.Auto.APEX.Services.Impl" %>
Service Configuration

Code:
<service behaviorConfiguration="Com.Honda.Auto.APEX.Services.Hosting.DefaultServiceBehavior"
name="Com.Honda.Auto.APEX.ProfileMaintenance.Services.Impl.ScoreBasedSalesOrganizationProfileService">
    <endpoint address="" binding="wsHttpBinding" contract="Com.Honda.Auto.APEX.ProfileMaintenance.Services.Contracts.IScoreBasedSalesOrganizationProfileService" >
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
we have around 70 WCF services and all of them are using Spring.NET.

Each first call to the service takes about 20 seconds with spring.net.

Are we missing anything or as spring.net creates proxies is it taking more time.

I enabled the WCF tracing to see where exactly it is taking time and i found that out of 21 seconds 14 seconds are taken from Receiving a message on channel to message read.

At this point of time we can't go back and change our design to not use Spring.Net as we are heavily using Aspect Orinted programming for Transactions, Exception handling , Logging , Caching and Validation.

Please advise.

Thanks,
Sravan