2010-11-18 9 views
7

He configurado un escenario de servicio autohospedado en el que configuro programáticamente varios hosts de servicio. Para cada uno de estos hosts que abro, veo el siguiente error en el registro de seguimiento:WCF Error de rastreo: contexto de evaluación de configuración no encontrado

<TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Warning"> 
    <TraceIdentifier>http://msdn.microsoft.com/en-US/library/System.ServiceModel.EvaluationContextNotFound.aspx</TraceIdentifier> 
    <Description>Configuration evaluation context not found.</Description> 
    <AppDomain>myprogram.exe</AppDomain> 
</TraceRecord> 

He leído que esto es causado por el uso de extensiones que no están declarados en el archivo de configuración, y estoy de hecho, el uso de una extensión de un comportamiento personalizado, pero añadiendo a archivo de configuración del .exe no tiene ningún efecto:

<system.serviceModel> 
    <extensions> 
     <behaviorExtensions> 
      <add name="myext" type="mytype, myassembly" /> 
     </behaviorExtensions> 
    </extensions> 
    .... 
</system.serviceModel> 

tenga en cuenta que no estoy usando esta extensión en otro sitio en el archivo de configuración, que estoy añadiendo que para el host de servicio mediante programación. Incluso configuré un comportamiento falso que usó la extensión solo para ver si resolvería el problema, pero no fue así.

¿Por qué veo este error en mi registro?

Respuesta

1

Tuve este problema y descubrí que tenía varios enlaces personalizados de identículo en el archivo ServiceReferences.clientconfig. Simplemente comenté los extras y todo fue bueno. (Estoy usando Silverlight para llamar a los servicios WCF)

<customBinding> 
    <binding name="SecureTransportNoCredentialsEndpoint"> 
     <binaryMessageEncoding /> 
     <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
    </binding> 
    <!--<binding name="SecureTransportNoCredentialsEndpoint1"> 
     <binaryMessageEncoding /> 
     <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
    </binding> 
    <binding name="SecureTransportNoCredentialsEndpoint2"> 
     <binaryMessageEncoding /> 
     <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
    </binding> 
    <binding name="SecureTransportNoCredentialsEndpoint11"> 
     <binaryMessageEncoding /> 
     <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
    </binding> 
    <binding name="SecureTransportNoCredentialsEndpoint3"> 
     <binaryMessageEncoding /> 
     <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
    </binding> 
    <binding name="SecureTransportNoCredentialsEndpoint12"> 
     <binaryMessageEncoding /> 
     <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
    </binding>--> 
    </customBinding> 
</bindings> 
0

En mi caso, tuve WCF interfaz con clases que contenían la propiedad de cadena "GCM" y agregan una nueva definición de clase llamado "GCM". Cuando cambié el nombre de la clase a "GCMObj", el error desapareció.

0

Mi experiencia es que tiene que crear manualmente el servicio con el nombre del servicio y otros detalles debajo de la etiqueta.

p. Ej.

<system.serviceModel> 
     <services> 
      <service name="WCF_NameSpace.Service1" behaviorConfiguration="behave"> 
       <endpoint address="" binding="basicHttpBinding" bindingConfiguration="bind" contract="WCF_Trace_2.IService1"></endpoint> 
      </service> 
     </services> 
+0

No estoy seguro de lo que quiere decir. ¿Estás diciendo que si creo un servicio (en la configuración) que utiliza esta extensión (a través de un enlace), el error desaparecerá? – Mark

Cuestiones relacionadas