Pergunta

É possível alterar a string de conexão (ou apenas o host do servidor) dependendo do perfil de publicação da web selecionado? Talvez usando Web.config Transform ou de alguma maneira mais?

Quero dizer para o perfil "teste", altere a string de conexão "myconnstring" (no web.config publicado) para "Data Source='example.com,14333;..." e para o perfil "produção" - para "Data Source=./SQLExpress;..."

Foi útil?

Solução

É exatamente para isso que foram criadas transformadas de configuração da web. O link que você forneceu em sua postagem tem um passo a passo de fazer isso especificamente para seqüências de strings de conexão.

Para começar com as transformações, clique com o botão direito do mouse no seu arquivo web.config no Project Explorer e escolha "Adicionar transformadas de configuração". Supondo que você tenha Configa e ConfigB na sua configuração de solução, haverá dois novos arquivos adicionados, web.configa.config e web.configb.config.

Se você abrir esses novos arquivos, eles estarão bem vazios, exceto por vários comentários. Eles realmente contêm um exemplo de string de conexão neles que você pode usar - parece assim:

<connectionStrings>
  <add name="MyDB" 
    connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>

Descubra esta seção e altere a propriedade "Nome" para o nome da string de conexão no arquivo base web.config. Defina a propriedade "ConnectionString" para o valor real que você deseja usar para o Configa. Então, assim:

<connectionStrings>
  <add name="myConnectionString" 
    connectionString="Data Source=ConfigASqlServer;Initial Catalog=ConfigADatabase;Integrated Security=True" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>

Repita o processo do arquivo web.configb.config, com a string de conexão desejada para configb.

Agora, quando você usa o comando publicish no Visual Studio, ele transforma automaticamente o arquivo base web.config e defina o atributo "ConnectionString" para qualquer configuração em que você publicar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top