2012-01-04 6 views
3

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

Ошибки создании обработчика раздела конфигурации для system.serviceModel/behaviors: элемент расширения 'endpointMessageInspector' не может быть добавлен к этому элементу. Убедитесь, что расширение зарегистрировано в коллекции расширений в файле system.serviceModel/extensions/behaviorExtensions. Имя параметра: элемент

Моя конечная точка конфигурации выглядит следующим образом:

<endpoint address="" binding="webHttpBinding" contract="Services.IGraphService" 
      behaviorConfiguration="corsMessageInspection" 
      bindingConfiguration="LargeMessageBinding" 
      bindingNamespace="http://some.domain.org"> 
</endpoint> 

EndpointBehaviors:

<behavior name="corsMessageInspection"> 
    <endpointMessageInspector /> 
</behavior> 

BehaviorExtensions:

<behaviorExtensions> 
    <add name="endpointMessageInspector" type="Services.Cors.CorsEndPointExtensionElement, Services, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"/> 
</behaviorExtensions> 

Я прочитал некоторые другие темы, которые скажем, тип a ttribute vale of theExtension должно быть точно так же, как тип сборки, для которой принадлежит расширение. Я продолжаю проверять, и я не могу найти проблему с этой конфигурацией.

Может ли кто-нибудь сказать мне, что я делаю неправильно?

+0

CorsEndPointExtensionElement должен наследовать класс BehaviorExtensionElement. Метод overload CreateBehaviour() в CorsEndPointExtensionElement должен возвращать новое поведение, которое реализует IEndpoinBehavior. – Rajesh

+0

Будет легко, если вы можете показать свою реализацию создания настраиваемого элемента поведения и инспектора сообщений – Rajesh

+0

@Rajesh Спасибо .. мое расширение наследует от BehaviorExtensionElement. Я считаю, что проблема - это имя сборки, которую я пытался зарегистрировать. – Nick

ответ

1

Казалось бы, имя моей сборки «Услуги» могло быть проблемой. Наконец, я попытался отредактировать файл конфигурации с помощью редактора конфигурации WCF. Он не смог открыть конфигурацию, жалуясь на то, что пространство имен «Services.Cors.CorsEndPointExtensionElement» не существовало, когда оно действительно было.

Я закончил перенос кода расширения поведения WCF в свою собственную сборку с другим пространством имен. .. исправлена ​​проблема, я не проверял ли название, «Услуги» был конфликт или не

+0

У меня недавно была такая же проблема ... интересно, нашли ли вы причину. – Laguna

Смежные вопросы