1

嗨,我有 2 个服务合同 IService1 和 IService2

我希望每个服务合同都有不同的端点,我也只想使用 basichttpbinding。

假设 IService1 地址是http://localhost:4040/MyApp/Service1.svc那么

我想使用地址http://localhost:4040/MyApp/Service1.svc/service2或使用 IService1 地址以外的地址访问 IService2

是否可以 ?

4

1 回答 1

1

你是在 IIS 中托管这个吗?如果是这样:IIS 指示您的地址 - 它们被定义为

http://YourServer/YourVirtualDirectory/YourService.svc

因此,如果您想要两个单独的地址,则需要两个单独的虚拟目录....

或者:self-host,那么你有完全的地址自由!

如果您自托管,您绝对可以定义一个公开两个端点的服务(在同一个实现类中实现两个服务接口):

<services>
   <service name="YourNamespace.ServiceImplementationClass">
      <host>
         <baseAddresses>
            <add baseAddress="http://localhost:4040/MyApp/Service1.svc" />
         </baseAddresses>
      </host>
      <endpoint name="Service1"
          address=""
          binding="basicHttpBinding"
          contract="YourNamespace.IService1" />
      <endpoint name="Service2"
          address="Service2"
          binding="basicHttpBinding"
          contract="YourNamespace.IService2" />
   </service>
</services>

因此,您的服务 1 可以在定义的基地址 ( http://localhost:4040/MyApp/Service1.svc) 处访问,而您的服务 2 将位于http://localhost:4040/MyApp/Service1.svc/Service2. 这就是你要找的吗??

于 2011-03-10T15:40:17.693 回答