2010-11-18 70 views
7

我已經設置了一個自我託管的服務場景,我以編程方式設置了多個服務主機。對於這些主機,我打開每一個,我看到在跟蹤日誌中出現以下錯誤:WCF跟蹤錯誤:未找到配置評估上下文

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

我讀過,這是通過使用未在配置文件中聲明的擴展造成的,我確實使用自定義行爲擴展,但它添加到.exe文件的配置文件中沒有任何作用:我不是在配置文件中使用這個擴展其他地方

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

注意,我將它添加以編程方式向服務主機發送。我甚至設置了一個虛擬行爲,使用擴展名來查看它是否可以解決問題,但事實並非如此。

爲什麼我在日誌中看到這個錯誤?

回答

1

我有這個問題,發現我在ServiceReferences.clientconfig文件中有多個標識自定義綁定。我只是評論了演員,一切都很好。 (我使用Silverlight調用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

就我而言,我有WCF接口與包含字符串屬性「GCM」,然後添加名爲「GCM」一個新的類定義類。當我將類名更改爲「GCMObj」時,錯誤消失了。

0

我的經驗是,您必須在標籤下手動創建具有服務名稱和其他詳細信息的服務。

例如

<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

不確定你的意思。你是說如果我使用這個擴展(通過綁定)創建一個服務(在配置中),錯誤會消失嗎? – Mark 2014-11-09 00:10:35