WCF端点在配置文件中针对不同环境的信息

时间:2015-05-05 18:33:22

标签: web-services wcf web.config-transform

我想知道在不同环境(DEV,TEST,PRE-PROD,PROD)的配置文件中保存WCF端点信息的最佳方法是什么。

我熟悉这样做的一种方法 - 1.维护不同的配置文件(针对每个环境)并相应地部署它们。

有人可以建议最好的方法吗?

2 个答案:

答案 0 :(得分:0)

您可以在运行时使用endpointbehaviors配置端点。在此行为中,您可以获取机器名称。根据计算机名称,您可以为端点设置端点地址,然后启动该服务。 这是一个链接:https://msdn.microsoft.com/en-us/library/vstudio/ms730137%28v=vs.100%29.aspx

修改

所以你写道:

class CustomEndpointBehavior : IEndpointBehavior{
 public void Validate(ServiceEndpoint endpoint)
{
  // get here the address and rewrite it dependig on the machinemane e.g.
  // remember to set the new address to the endpoint!

}

public void AddBindingParameters(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters)
{

}

public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
{

}

public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
{

}
}

在启动服务的类中,您需要将CustomEndpointBehavior设置为serviceHost,如:

serviceHost.Description.Behaviors.Add(new CustomEndpointBehavior());

答案 1 :(得分:0)

我认为这是链接。创建多个配置,然后使用预构建事件来复制它。 http://www.hanselman.com/blog/ManagingMultipleConfigurationFileEnvironmentsWithPreBuildEvents.aspx

在你拥有visual studio 2010及更高版本之后,它将能够合并配置。 https://msdn.microsoft.com/en-us/library/dd465326(v=vs.110).aspx