如何以编程方式为客户端和服务器设置baseAddress?

时间:2013-05-04 07:06:17

标签: c# winforms wcf

当前baseAddress已在app.config文件中修复,用于服务和客户端

服务和客户的App.Config

<host>
      <baseAddresses>
        <add baseAddress="http://localhost:8080/service" />
      </baseAddresses>
    </host>

是否有可能以编程方式进行?像

baseAddress = txtbaseAddress.Text;

还是其他?

2 个答案:

答案 0 :(得分:0)

虽然这有点晚,但对其他人来说可能有用。

使用基于ServiceHostFactoryBase的自定义服务主机,如下所示: Service Host Factory Base

实施示例:Implementing Custom Service Host

此外,ServiceHostBase类是抽象的,可用于创建自定义ServiceHost。

答案 1 :(得分:-1)

您无法使用ServiceHost更新基本地址,因为它是只读的。您必须将baseAddress集传递给ServiceHost构造函数,否则您必须使用配置文件。

请参阅以下链接

  
      
  1. MSDN

  2.   
  3. MSDN Blog

  4.   
<system.serviceModel>
  <serviceHostingEnvironment>
     <baseAddressPrefixFilters>
        <add prefix=”net.tcp://test1.fabrikam.com:8000”/>
        <add prefix=”http://test2.fabrikam.com:9000”/>
    </baseAddressPrefixFilters>
  </serviceHostingEnvironment>
</system.serviceModel>