Как я могу использовать конечную точку IMetadataExchange для получения информации о метаданных службы? - PullRequest
0 голосов
/ 06 августа 2010

Как я могу использовать IMetadataExchange конечную точку для получения информации о метаданных службы?

Нужно ли реализовывать его в классе, как мы это делаем для других интерфейсов?

Пожалуйста, помогите мне ...

Ответы [ 3 ]

0 голосов
/ 09 августа 2010

Фреймворк позаботится о реализации за вас.

Однако вы должны создать поведение службы, которое включает это.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>

        <behaviors>
            <serviceBehaviors>
                 <!-- behavior that enables metadata exchanges -->
                <behavior name="mexGet">
                    <serviceMetadata httpGetEnabled="true"/>
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <services>
            <!-- assign the custom behavior here -->
            <service name="MyNamespace.MyImplementation"
                     behaviorConfiguration="mexGet">
                <host>
                    <baseAddresses>
                        <add baseAddress="http://localhost:3849"/>
                    </baseAddresses>
                </host>
                <endpoint
                    address="MyService"
                    binding="wsHttpBinding"
                    contract="MyNamespace.MyServiceInterface"
                    >

                </endpoint>

                <endpoint
                    address="mex"
                    binding="mexHttpBinding"
                    contract="IMetadataExchange">

                </endpoint>
            </service>
        </services>
    </system.serviceModel>
</configuration>
0 голосов
/ 19 апреля 2016

Нет необходимости реализовывать IMetadataExchange.Просто добавьте конечную точку:

<endpoint
    address="mex"
    binding="mexHttpBinding"
    contract="IMetadataExchange" />

Одна важная вещь, вы должны указать serviceMetadata, иначе ваш IMetadataExchange не будет найден:

<behaviors>
    <serviceBehaviors>
        <behavior>
            <serviceMetadata />
        </behavior>
    </serviceBehaviors>
</behaviors>
0 голосов
/ 06 августа 2010

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

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