Rick
Rick

Reputation: 998

EF 6.1 Configuration using Interceptors with WCF

I am trying to turn on database logging using the interceptor feature that was added in EF 6.1. It works fine when I turn on in a ASP.NET web.config file, but when I trying to use in a WCF service that uses EF 6.1, it gets the following error

Exception: System.ServiceModel.ServiceActivationException: The service '/DataAccessService.svc' cannot be activated due to an exception during compilation. The exception message is: The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception..The more telling message is from the inner exception: Unrecognized element 'interceptors'. web.config line 123)

NOTE: based on the first answer, I am providing more elements from the web.config

<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
.
.
.
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
  <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>

<interceptors>
  <interceptor type="System.Data.Entity.Infrastructure.Interception.DatabaseLogger, EntityFramework">
    <parameters>
      <parameter value="C:\tmp\DataAccessLogOutput.txt" />
    </parameters>
  </interceptor>
</interceptors>
</entityFramework>

Upvotes: 1

Views: 4240

Answers (1)

ErnieL
ErnieL

Reputation: 5801

You didn't register the Entity Frame Work configuration section that defines <interceptors> correctly. In other words do you have this at the top of your config file?

<configuration> 
  <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" 
       type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
  </configSections> 
</configuration>

Upvotes: 1

Related Questions