2010-11-18 6 views
7

J'ai configuré un scénario de service auto-hébergé où je configure par programme plusieurs hôtes de service. Pour chacun de ces hôtes que j'ouvert, je vois l'erreur suivante dans le journal de suivi:Erreur de suivi WCF: le contexte d'évaluation de la configuration n'a pas été trouvé

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

J'ai lu que cela est dû à l'utilisation des extensions qui ne sont pas déclarées dans le fichier de configuration, et je suis en effet, à l'aide d'un comportement personnalisée extension, mais l'ajouter au fichier de configuration du .exe n'a pas eu d'effet:

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

Notez que je ne suis pas en utilisant cette extension nulle part ailleurs dans le fichier de configuration, j'ajouter à l'hôte de service par programme. J'ai même mis en place un comportement fictif qui utilisait l'extension juste pour voir si cela résoudrait le problème, mais ce n'est pas le cas. Pourquoi cette erreur s'affiche-t-elle dans mon journal? Pourquoi?

Répondre

1

J'ai rencontré ce problème et trouvé que j'avais plusieurs liaisons personnalisées d'identic dans le fichier ServiceReferences.clientconfig. J'ai simplement commenté les extras et tout était bon. (J'utilise Silverlight pour appeler les services 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

Dans mon cas, j'avais WCF Interface avec des classes qui contiennent la propriété de chaîne « GCM », puis a ajouté une nouvelle définition de classe appelée « GCM ». Lorsque j'ai changé le nom de la classe en "GCMObj", l'erreur est partie.

0

Mon expérience est, vous devez créer manuellement le service avec le nom du service et d'autres détails sous l'étiquette.

par exemple.

<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

Vous ne savez pas exactement ce que vous voulez dire. Voulez-vous dire que si je crée un service (dans la configuration) qui utilise cette extension (via une liaison), l'erreur disparaîtra? – Mark

Questions connexes