【发布时间】:2021-12-13 18:17:06
【问题描述】:
目前我有一个使用以下 App.Config 端点的 WCF 服务
<services>
<service behaviorConfiguration="ServiceBehavior" name="ProxyWindowsService.HPCommands">
<endpoint address="" binding="basicHttpBinding" contract="ProxyWindowsService.HPCommandsInterface"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="http://127.0.0.1:8004/ProxyService/HPCommands"/>
</baseAddresses>
</host>
</service>
</services>
根据新要求,我们需要在其他端口上打开端点。所以我想要一些这样的地址设置,我可以通过某些端口路由某些端点
<baseAddresses>
<add baseAddress="http://127.0.0.1:8004/ProxyService/HPCommands/Command1" />
<add baseAddress="http://127.0.0.1:8005/ProxyService/HPCommands/Command2" />
<add baseAddress="http://127.0.0.1:8006/ProxyService/HPCommands/Command3" />
</baseAddresses>
但是,我不知道如何修改我的配置和代码来实现多个绑定端口。 WCF可以做到这一点吗?我认为它应该允许我打开多个侦听器
【问题讨论】:
-
将使用代码进行设置以读取配置并以编程方式创建绑定。
-
@AliK 哦,好吧,所以我假设这意味着我将使用 serviceHost.AddServiceEndpoint 并且传入的服务类型将与我的命令相关。好奇这是否意味着我从 App.config 中删除了绑定定义——谢谢
-
从技术上讲,您可以离开它们并从 comfig 或数据库中读取。
-
你可以参考this post,想办法解决。