您好我有2份服务合约IService1和IService2
我想为每个服务合同设置不同的端点,我也只想使用basichttpbinding。
假设IService1地址为http://localhost:4040/MyApp/Service1.svc,那么
我想访问地址为http://localhost:4040/MyApp/Service1.svc/service2的IService2或IService1地址以外的地址
有可能吗?
答案 0 :(得分:1)
你在IIS中托管这个吗?如果是这样:IIS指示您的地址 - 它们被定义为
http://YourServer/YourVirtualDirectory/YourService.svc
因此,如果您需要两个单独的地址,则需要两个单独的虚拟目录....
或者:自我主持人,那么您就拥有完全的地址自由!
如果你是自托管的,你肯定可以定义一个服务(在同一个实现类中实现两个服务接口)来暴露两个端点:
<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
。这就是你要找的东西吗?