我用WCF替换旧的(VB.NET/asmx)服务。我们想使用WebAPI,但有太多客户仍然需要SOAP。我们将在IIS 7中托管。(.NET 4.5.2)
我们的每位客户(约30位)都希望拥有自己的网址:https://www.example.com/API/4.0/ATT...whatever。我不希望我们的客户数量很快超过50。
我知道我可以通过为每个客户端创建一个.svc文件并且(我相信)配置中的另一个端点来完成此操作(正如我们的旧服务所做的那样)。但是从我所读过的内容来看,我认为这可以通过一个服务的多个端点来实现(绑定和合同/接口都是相同的),而且看起来更清晰。
我在这方面取得了一些进展,但遇到了问题。我没有在这些问题上寻求帮助(但是!) - 我问:在我进一步挖掘之前,是否有人对这是否可行(或最佳?)方法有所了解?
下面是配置文件的片段。我觉得我非常接近,但如果过滤/ listenUri更明智,我会改变策略。
<service name="API" behaviorConfiguration="beUserNameBehavior">
<host>
<baseAddresses>
<add baseAddress="https://ww6.example.com/API"/>
<!--<add baseAddress="http://localhost:55375/"/>-->
</baseAddresses>
</host>
<endpoint name="BE" address="/BE" binding="wsHttpBinding" bindingConfiguration="beUserNameBinding" contract="API.IBEAPI" />
<endpoint name="SAP" address="/SAP" binding="wsHttpBinding" bindingConfiguration="beUserNameBinding" contract="API.IBEAPI" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>