我们目前只有一个WCF应用程序的解决方案,在接下来的两年内,解决方案会大量增加。 这是大约70种不同的服务。 我们使用Windows Identity Foundation来保护大多数用户,其他人使用SSL而有些则没有
我正在寻找重组应用程序,我正在考虑拥有多个WCF应用程序(一个用于业务服务,另一个用于后端服务等), 我认为它可以为测试提供很多帮助。
我的问题是: 有没有办法构建具有多个WCF应用程序的解决方案,而无需创建和部署多个包(对于部署来说不是非常有用) 如果我恢复应用程序,我将有4或5个不同的服务项目,并且每个项目都需要一个app.config文件(在生产环境中不易维护或升级)
答案 0 :(得分:0)
您可以在WCF主机中拥有尽可能多的服务程序集,只需确保它们具有唯一的名称即可。每个服务dll都有自己的项目,主机停留在解决方案中的一个项目中。然后像这样创建一个app.config:
<services>
<service behaviorConfiguration="serviceBehaviour" name="DLSService.DLSService">
<endpoint address="DLSService" binding="basicHttpBinding" bindingConfiguration=""
name="basicHttpDLS" contract="DLSService.IDLSService" />
<endpoint binding="mexHttpBinding" bindingConfiguration="" name="mexDLS"
contract="IMetadataExchange" />
<endpoint address="DLSService" binding="netTcpBinding" bindingConfiguration=""
name="netTcpDLS" contract="DLSService.IDLSService" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServicesHost/DLSService" />
</baseAddresses>
</host>
</service>
<service behaviorConfiguration="serviceBehaviour" name="RopsPreorderService.RopsPreorderService">
<endpoint address="RopsPreorderService" binding="basicHttpBinding" bindingConfiguration=""
name="basicHttpPreorderService" contract="PreorderService.IPreorderService" />
<endpoint binding="mexHttpBinding" bindingConfiguration="" name="mexRopsPreorderService"
contract="IMetadataExchange" />
<endpoint address="PreorderService" binding="netTcpBinding" bindingConfiguration=""
name="netTcpPreorderService" contract="RopsPreorderService.IPreorderService" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServicesHost/PreorderService" />
<add baseAddress="net.tcp://localhost:9000/PreorderService" />
</baseAddresses>
</host>
</service>
</services>