Ошибка трассировки WCF: контекст оценки конфигурации не найден - PullRequest
7 голосов
/ 19 ноября 2010

Я настроил сценарий автономного обслуживания, где программно настраиваю несколько хостов службы. Для каждого из этих хостов, которые я открываю, я вижу следующую ошибку в журнале трассировки:

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

Обратите внимание, что я не использую это расширение где-либо еще в файле конфигурации, я добавляю его на хост службы программно. Я даже настроил фиктивное поведение, которое использовало расширение только для того, чтобы посмотреть, решит ли оно проблему, но это не так.

Почему я вижу эту ошибку в моем журнале?

Ответы [ 3 ]

1 голос
/ 12 июня 2012

У меня возникла эта проблема, и я обнаружил, что в файле 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 голосов
/ 05 ноября 2014

По моему опыту, вы должны вручную создать сервис с названием сервиса и другими деталями под тегом.

, например

  <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 голосов
/ 07 ноября 2013

В моем случае, у меня был интерфейс WCF с классами, который содержал строковое свойство "GCM", а затем добавил новое определение класса под названием "GCM". Когда я изменил имя класса на «GCMObj», ошибка исчезла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...