Можно ли вернуть разные wsdls для разных контрактов на одном и том же сервисе? - PullRequest
2 голосов
/ 11 октября 2011

У меня есть служба WCF, реализующая два контракта на двух разных конечных точках. Я хотел бы, чтобы клиент мог указывать на конечную точку (а не на базовый адрес службы) и получать wsdl только для контракта, реализованного на этой конечной точке (а не wsdl, содержащий все контракты).

Возможно ли это? Если да, то как этого достичь?

1 Ответ

2 голосов
/ 11 октября 2011

Вместо настройки службы, как показано ниже (с одним файлом SVC, если хостинг в IIS)

<services>
    <service name="YourOrg.YourService">

        <endpoint address=""
                  binding="wsHttpBinding"
                  contract="YourOrg.IYourServiceThisContract" />
        <endpoint address="That"
                  binding="wsHttpBinding"
                  contract="YourOrg.IYourServiceThatContract" />
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange"/>
    </service>
</services>

Установите каждый контракт как отдельную службу класс (со своим собственнымSVC-файл на том же сайте IIS)

<services>
    <service name="YourOrg.ThisService">

        <endpoint address=""
                  binding="wsHttpBinding"
                  contract="YourOrg.IYourServiceThisContract" />
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange"/>
    </service>

    <service name="YourOrg.ThatService">

        <endpoint address=""
                  binding="wsHttpBinding"
                  contract="YourOrg.IYourServiceThatContract" />
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange"/>
    </service>
</services>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...