Информация о конечных точках WCF в файле конфигурации для разных сред

Я хотел знать, как лучше всего сохранять информацию о конечных точках WCF в файле конфигурации для разных сред (DEV, TEST, PRE-PROD, PROD).

я знаком с 1 способом сделать это - 1. Поддерживать разные файлы конфигурации (для каждой среды) и развертывать их соответствующим образом.

Может кто-нибудь предложить лучший способ сделать это ??


person Surya Garimella    schedule 05.05.2015    source источник


Ответы (2)


Конечную точку можно настроить во время выполнения с помощью 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());
person Andreas K    schedule 06.05.2015

Я думаю, это ссылка. Создайте несколько конфигураций, а затем используйте событие предварительной сборки, чтобы скопировать их. http://www.hanselman.com/blog/ManagingMultipleConfigurationFileEnvironmentsWithPreBuildEvents.aspx

Если у вас есть Visual Studio 2010 и выше, он сможет объединить конфигурацию. https://msdn.microsoft.com/en-us/library/dd465326(v=vs.110).aspx

person Mahesh Malpani    schedule 06.05.2015