2013-05-04 62 views
0

目前baseAddress固定在两个服务端和客户端如何以编程方式为客户端和服务器设置baseAddress?

App.Config中为服务端和客户端

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

app.config文件是否有可能以编程方式?像

baseAddress = txtbaseAddress.Text; 

或者任何?

+0

它适合你吗? ServiceHost myHost = new ServiceHost(typof(myType),baseAddress)? – 2013-05-04 07:18:40

+0

@AdilMammadov,这个集合已经包含一个地址与方案http。此集合中每个方案最多可以有一个地址。如果您的服务在IIS中托管,您可以通过将'system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled'设置为true或指定'system.serviceModel/serviceHostingEnvironment/baseAddressPrefixFilters'来解决此问题。 – SHINHAN 2013-05-04 07:38:04

回答

0

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

请参考以下链接

  1. MSDN

  2. MSDN Blog

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

在这里没有例子通过编程来实现这个功能。 – 2016-04-12 16:11:59

0

虽然这是B它迟到它可能对其他人有用。

使用基于ServiceHostFactoryBase定制服务主机发现这里: Service Host Factory Base

实施例:Implementing Custom Service Host

另外的ServiceHostBase类是抽象的,并且可以被利用来创建定制的ServiceHost。

+0

请注意,[只提供链接的答案](http://meta.stackoverflow.com/tags/link-only-answers/info),所以SO答案应该是搜索解决方案的终点(vs.而另一个引用的中途停留时间往往会随着时间推移而过时)。请考虑在此添加独立的摘要,并将链接保留为参考。 – kleopatra 2015-07-08 15:53:14

相关问题