Wcf 是否可以为同一服务上的不同合同返回不同的WSDL?

Wcf 是否可以为同一服务上的不同合同返回不同的WSDL?,wcf,wsdl,Wcf,Wsdl,我有一个WCF服务,在两个不同的端点上实现两个契约。我希望客户机能够指向一个端点(而不是服务的基址),并仅获取在该端点上实现的契约的wsdl(而不是包含所有契约的wsdl) 这可能吗?如果是,如何实现它?而不是像下面所示设置服务(如果在IIS中托管,则使用单个SVC文件) 将每个合同设置为一个单独的服务类(在同一IIS网站中有自己的SVC文件) 这是否意味着它们都必须位于不同的端口上?它们将使用相同的端口,并在IIS中默认使用答案中显示的配置。可以在IIS中为具有主机头的同一“网站”使用不

我有一个WCF服务,在两个不同的端点上实现两个契约。我希望客户机能够指向一个端点(而不是服务的基址),并仅获取在该端点上实现的契约的wsdl(而不是包含所有契约的wsdl)


这可能吗?如果是,如何实现它?

而不是像下面所示设置服务(如果在IIS中托管,则使用单个SVC文件)


将每个合同设置为一个单独的服务类(在同一IIS网站中有自己的SVC文件)



这是否意味着它们都必须位于不同的端口上?它们将使用相同的端口,并在IIS中默认使用答案中显示的配置。可以在IIS中为具有主机头的同一“网站”使用不同的端口。因为WCF不是真正的“URL感知”,所以它不会很有用。我应该澄清这个问题-它不是IIS托管的,并且具有动态配置(因此它也不在配置文件中)。您的配置建议是否意味着我需要创建单独的服务主机?是的,WCF要求每个服务定义都有自己的主机。
<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>
<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>