Я пытаюсь реализовать пользовательскую конечную точку / расширение операции в моей службе WCF.Я подключил свое собственное расширение в websconfig, чтобы я мог украшать свой сервис и операции с помощью атрибута.Однако после этого я получаю следующую ошибку:
Сообщение с To 'http://localhost:1605/Graph.svc/Triples/vbid/abk9185/0/en-us' не может быть обработано в получателе из-за несоответствия AddressFilter в EndpointDispatcher.Убедитесь, что конечные адреса отправителя и получателя совпадают.
Я провел большой поиск, но не могу понять, что означает эта ошибка или как ее исправить.Может ли кто-нибудь помочь?
Это служба, в которую я «внедряю» мою конечную точку и поведение операций:
<service name="Services.Graph" behaviorConfiguration="Services.DefaultBehavior">
<endpoint address="" binding="webHttpBinding" contract="Services.IGraphService" behaviorConfiguration="corsMessageInspection"
bindingConfiguration="LargeMessageBinding" bindingNamespace="http://icp.myorg.org">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
Вот моя конфигурация конечной точки и поведения службы:
<endpointBehaviors>
<behavior name="web">
<webHttp />
</behavior>
<behavior name="corsMessageInspection">
<endpointMessageInspector />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="Services.DefaultBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
Вот моя настраиваемая конфигурация конечной точки / расширения операции:
<extensions>
<behaviorExtensions>
<add name="endpointMessageInspector" type="org.myorg.wcf.cors.CorsEndPointExtensionElement, org.myorg.wcf.cors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</behaviorExtensions>
</extensions>
и, наконец, вот пример того, как выглядит мой контракт на обслуживание:
[ServiceContract(Namespace = "http://icp.myorg.org")]
[CorsBehavior]
public interface IGraphService
{
[OperationContract]
[CorsBehavior]
[WebInvoke(Method = "*", UriTemplate = "Triples/{library}/{subjectLocalPart}/{depth}/{languageCode}")]
GraphNode ReadTriple(string library, string subjectLocalPart, string depth, string languageCode);
"CorsBehavior"мой пользовательский атрибут, который реализует как IEndPointBehavior, так и IOperationBehavior.