2010-11-18 36 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ファイルに複数のidenticleカスタムバインディングがあることがわかりました。私は単にエキストラをコメントアウトして、すべてが良かった。私の場合は

<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」を含有しており、その後追加されたクラスとWCFのインターフェイスを持っていました。クラス名を "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

関連する問題