2010-11-18 16 views
7

Ho impostato uno scenario di servizio self-hosted in cui sono impostato a livello di programmazione diversi host di servizio. Per ognuno di questi host che apro, vedo il seguente errore nel registro di traccia:Errore traccia WCF: contesto di valutazione della configurazione non trovato

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

ho letto che questo è causato da utilizzando le estensioni che non sono dichiarate nel file di configurazione, e sono infatti utilizzando un'estensione comportamento personalizzato, ma aggiungendo al file di configurazione del exe non ha avuto alcun effetto:

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

si noti che non sto usando questa estensione altrove nel file di configurazione, sto aggiungendo che al servizio host programmaticamente. Ho persino impostato un comportamento fittizio che ha utilizzato l'estensione solo per vedere se avrebbe risolto il problema, ma non è stato così.

Perché visualizzo questo errore nel mio registro?

risposta

1

Ho riscontrato questo problema e ho rilevato che sono presenti più binding personalizzati Identicle nel file ServiceReferences.clientconfig. Ho semplicemente commentato gli extra e tutto andava bene. (Sto usando Silverlight per chiamare i servizi 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

Nel mio caso, ho avuto WCF interfaccia con le classi che contenevano la proprietà stringa "GCM" e poi aggiunto una nuova definizione di classe chiamato "GCM". Quando ho cambiato il nome della classe in "GCMObj", l'errore è andato via.

0

La mia esperienza è, è necessario creare manualmente il servizio con il nome del servizio e altri dettagli sotto il tag.

ad es.

<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

Non so cosa intendi. Stai dicendo che se creo un servizio (nella configurazione) che utilizza questa estensione (tramite un'associazione), l'errore sparirà? – Mark

Problemi correlati