使用带有WCF的拦截器进行EF 6.1配置

时间:2014-12-15 23:16:58

标签: entity-framework wcf

我正在尝试使用EF 6.1中添加的拦截器功能打开数据库日志记录。当我在ASP.NET web.config文件中打开时它工作正常,但是当我尝试在使用EF 6.1的WCF服务中使用时,它会收到以下错误

异常:System.ServiceModel.ServiceActivationException:服务' /DataAccessService.svc'由于编译期间的异常,无法激活。异常消息是:System.Data.Entity.Internal.AppConfig'的类型初始值设定项。引发异常。更有说服力的信息来自内部异常:无法识别的元素'拦截器'。 web.config第123行

注意:根据第一个答案,我提供了更多来自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>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

您没有正确注册定义<interceptors>的{​​{3}}。换句话说,你是否在配置文件的顶部有这个?

<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>