2013-07-19 9 views
1

Я имел службы WCFКак настроить конечную точку

Мой Web.config выглядит следующим образом:

<system.serviceModel> 

<bindings> 
    <webHttpBinding> 
    <binding name="crossDomain" crossDomainScriptAccessEnabled="true" /> 
    </webHttpBinding> 
</bindings> 

<behaviors> 
    <serviceBehaviors> 
    <behavior name="ServiceBehavior"> 
     <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
     <serviceMetadata httpGetEnabled="true"/> 
     <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
     <serviceDebug includeExceptionDetailInFaults="true"/> 
    </behavior> 
    </serviceBehaviors> 
    <endpointBehaviors> 
    <behavior name="EndpBehavior"> 
     <webHttp /> 
    </behavior> 
    </endpointBehaviors> 
</behaviors> 

<services> 
    <service behaviorConfiguration="ServiceBehavior" name="MyNameSpace.MyService"> 
    <endpoint address="" binding="webHttpBinding" bindingConfiguration="crossDomain" contract="MyNameSpace.IMyService" behaviorConfiguration="EndpBehavior"/> 
    </service> 
</services> 

<serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 

Недавно я нашел этот код для параметра массива из одного сайта

using System.ServiceModel.Description; 
using System.ServiceModel.Dispatcher; 
using System.ServiceModel.Web; 

namespace ArraysInQueryStrings 
{ 
public class ArrayInQueryStringWebHttpBehavior : WebHttpBehavior 
{ 
    WebMessageFormat defaultOutgoingResponseFormat; 
    public ArrayInQueryStringWebHttpBehavior() 
    { 
     this.defaultOutgoingResponseFormat = WebMessageFormat.Json; 
    } 

    public override WebMessageFormat DefaultOutgoingResponseFormat 
    { 
     get 
     { 
      return this.defaultOutgoingResponseFormat; 
     } 
     set 
     { 
      this.defaultOutgoingResponseFormat = value; 
     } 
    } 

    protected override QueryStringConverter GetQueryStringConverter(OperationDescription operationDescription) 
    { 
     return new ArrayQueryStringConverter(); 
    } 
} 
} 

Как использовать этот расширенный класс в файле web.config.

Это похоже на поведение конечной точки, но не знает, как его использовать.

Любая помощь приветствуется

+0

Что именно вы пытаетесь достичь? Думаю, вы ошибетесь. –

+0

Мои сервисы работают правильно. Я создал функцию, которая будет иметь массив accespt, и я получил ошибку, но тип «System.String []» не конвертируется с помощью «QueryStringConverter». Поэтому я нашел решение для обновления webhtppbehaviour. – Moons

ответ

2

Чтобы добавить пользовательские поведения, вам необходимо добавить производный поведение как расширение поведения в конфигурационном файле и нужно добавить новый тип расширения поведения. Обратитесь к этому сообщению - Custom Behavior won't register in my web.config

public class ArrayInQueryStringBehaviorExtension : BehaviorExtensionElement 
{ 
public override Type BehaviorType 
{ 
    get { return typeof(ArrayInQueryStringWebHttpBehavior); 
} 
} 

protected override object CreateBehavior() 
{ 
    return new ArrayInQueryStringWebHttpBehavior(); 
} 
} 

Config файл (нужно указать ваше имя сборки, где я пометил квадратные скобки ниже)

<extensions> 
    <behaviorExtensions> 
    <add name=" ArrayInQueryStringWebHttpBehavior " type="[Namespace]. ArrayInQueryStringBehaviorExtension, [Assembly Name], [Assembly Version], [Assembly Culture], PublicKeyToken=null" /> 
    </behaviorExtensions> 
</extensions> 
<behaviors> 
    <endpointBehaviors> 
    <behavior name="arrayInQueryBehavior"> 
     <webHttp/> 
     < ArrayInQueryStringWebHttpBehavior /> 
    </behavior> 
    </endpointBehaviors> 
<behaviors> 
+0

Я уже пробовал это, прежде чем публиковать свой вопрос, но я не получаю его. Я написал почти весь код в вопросе. не могли бы вы рассказать мне, что дополнение мне нужно написать на основе моего вопроса – Moons

+0

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

+0

Большое спасибо ... – Moons

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