4

这应该是一个直截了当的问题。

我无法使用 WCFTestClient 工具连接到特定端点。我有一个服务配置。像这样:

<service name="CO.Services.SvcTest">
        <endpoint address="ep1" binding="basicHttpBinding" bindingConfiguration=""
          bindingNamespace="http://api.CO.com/Services/Tester/ep1"
          contract="CO.Services.ISvcTest" />
        <endpoint address="ep2" binding="basicHttpBinding" bindingConfiguration=""
          bindingNamespace="http://api.CO.com/Services/Tester/ep2"
          contract="CO.Services.ISvcTest_v2" />
        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
          name="" contract="IMetadataExchange" />
      </service>

如果我通过' http://localhost:2659/Tester.svc/ep1 '或' http://localhost:2659/Tester.svc/ep2 '我得到“无法从...获取元数据”但如果我通过' http://localhost:2659/Tester.svc它可以工作并向我显示两个端点。

有谁知道我错过了什么?

EDIT1:这甚至可能吗?

4

1 回答 1

3

这是正确的行为

在 WCF 中,服务的元数据默认在服务的基地址提供。

如果您在自定义流程中托管您的服务,您可以自定义基地址的 URL,甚至可以使用baseAddresses 配置部分添加新的。如果您在 IIS 中托管服务,这似乎是您的情况,那么基地址始终是.svc文件的 URL。

编辑: 如果您想要两个完全独立的端点,那么您将必须创建两个服务实现,每个合同一个,并在配置文件中使用不同的元素配置它们。只要端点是同一服务的一部分,您就只能从服务的基地址(在您的情况下是 .svc 文件的 URL)检索元数据。

于 2012-01-12T11:49:38.197 回答