Поддерживает ли клиент Silverlight поведение WCF? - PullRequest
1 голос
/ 13 февраля 2011

Я пытаюсь добавить поведение конечной точки WCF в мой клиент Silverlight. Однако я получаю следующую ошибку во время выполнения:

Unrecognized element 'behaviors' in service reference configuration.
Note that only a subset of the Windows Communication Foundation
configuration functionality is available in Silverlight.

Правда ли, что конечные точки WCF не могут быть расширены в Silverlight? Мой файл ServiceReferences.ClientConfig указан ниже и показывает, как я пытаюсь добавить расширение MyBehaviorExtention:

<configuration>

    <system.serviceModel>

        <extensions>
            <behaviorExtentions>
                <add
                    name="MyBehaviorExtention"
                    type="MyTest,
                          MyBehaviorExtention,
                          Version=1.0.0.0,
                          Culture=neutral,
                          PublicKeyToken=null" />
            </behaviorExtentions>
        </extensions>

        <behaviors>
            <endpointBehaviors>
                <behavior name="MyBehavior">
                    <MyBehaviorExtention />
                </behavior>
            </endpointBehaviors>
        </behaviors>

        <bindings>
            <basicHttpBinding>
                <binding
                    name="MyWebServicePortBinding"
                    maxBufferSize="2147483647"
                    maxReceivedMessageSize="2147483647">
                    <security mode="None" />
                </binding>
            </basicHttpBinding>
        </bindings>

        <client>
            <endpoint
                name="MyWebServicePort"
                address="http://localhost:8080/MyService"
                binding="basicHttpBinding"
                bindingConfiguration="MyWebServicePortBinding"
                contract="MyServiceReference.MyWebService"
                behaviorConfiguration="MyBehavior" />
        </client>

    </system.serviceModel>

</configuration>

1 Ответ

0 голосов
/ 14 февраля 2011

Разве это не должно идти на вашем сервере вместо web.config? ServiceReferences.ClientConfig должен содержать информацию, относящуюся к справочной информации WebService, например, адрес конечной точки и т. д. Он содержит адреса служб и компилируется внутри файла .xap, сгенерированного компиляцией.

Вот пример моего web.config, где я использую расширения поведения:

 <extensions>
      <behaviorExtensions>
        <add name="silverlightFaults" type="MyApp.Web.Services.SilverlightFaultBehavior, MyApp.Web"/>
      </behaviorExtensions>
    </extensions>

    <behaviors>
      <endpointBehaviors>
        <behavior name="SilverlightFaultBehavior">
          <silverlightFaults />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

Это все, что мне нужно. Мой ServiceRefeferences.ClientConfig содержит только адреса конечных точек. Он содержит только подмножество клиентской конфигурации Windows Communication Foundation (WCF).

...