C# 如何以编程方式设置客户端和服务器的基址?
当前,C# 如何以编程方式设置客户端和服务器的基址?,c#,winforms,wcf,C#,Winforms,Wcf,当前,baseAddress在app.config文件中固定为服务和客户端 服务和客户端的App.Config <host> <baseAddresses> <add baseAddress="http://localhost:8080/service" /> </baseAddresses> </host> 或任何?您不能使用ServiceHost更新基址,因为它是只读的。您必须将ba
baseAddress
在app.config文件中固定为服务和客户端
服务和客户端的App.Config
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/service" />
</baseAddresses>
</host>
或任何?您不能使用ServiceHost更新基址,因为它是只读的。您必须将baseAddress集传递给ServiceHost构造函数,或者必须使用配置文件 请参考以下链接
虽然这有点晚了,但可能对其他人有用 使用基于ServiceHostFactoryBase的自定义服务主机,如下所示: 实施示例:
此外,ServiceHostBase类是抽象的,可用于创建自定义ServiceHost。它是否适用于您?ServiceHost myHost=新的ServiceHost(typof(myType),baseAddress)?@adilmamamadov,此集合已包含具有方案http的地址。此集合中每个方案最多只能有一个地址。如果您的服务托管在IIS中,您可以通过将“system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled”设置为true或指定“system.serviceModel/serviceHostingEnvironment/baseAddressPrefixFilters”来解决问题。请注意,答案应该是搜索解决方案的终点(与参考文献的另一个中途停留相比,随着时间的推移,参考文献往往会变得陈旧)请考虑在这里添加一个独立的概要,将链接作为引用。实现示例的代码对我来说似乎很麻烦。为什么它将代码< >构造字符串< /代码>分配给一个从未使用过的局部变量。
baseAddress = txtbaseAddress.Text;
<system.serviceModel>
<serviceHostingEnvironment>
<baseAddressPrefixFilters>
<add prefix=”net.tcp://test1.fabrikam.com:8000”/>
<add prefix=”http://test2.fabrikam.com:9000”/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
</system.serviceModel>