Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tiago Cardoso

Alterar Web.config Em Uma Class Library

Recommended Posts

Boa tarde pessoal,

 

Gostaria de saber como faço para alterar uma connectionstring dentro do web.config através de uma class Library, eu até já tenho o script, porém ocorre um erro de segurança:

 

System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

E está tudo referenciado, tenho um System.Configuration, e tenho o .dll atrelado no web site. Também detectei que a alteração funciona se não uso class Library.

 

Como desabilito a segurança?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigao...

 

Basicamente você apenas precisa importar o namespace System.Web.Configuration,

abrir o arquivo Web.Config onde estão as connectionstrings e

alterá-las ou adicionar uma nova connectionstring.

 

Um exemplo é algo como:

 

Configuration webConfig = WebConfigurationManager.OpenWebConfiguration("~");
ConnectionStringsSection dbConnString = webConfig.ConnectionStrings;

//Alterando
dbConnString.ConnectionStrings["DBOrders"].ConnectionString = "TUA NOVA CONNSTRING AQUI";

//Adicionando
dbConnString.ConnectionStrings.Add(
	new ConnectionStringSettings("MDBTest", "MDB ConnString", "System.Data.OleDb"));

webConfig.Save();

Eu testei aqui e deu certo...

Nao sei qual o problema de segurança que pode estar acontecendo...

mas olha ai e ve se tah parecido com isso ai...

 

Abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

É exatamente isso que eu faço, porém na hora de resgatar dentro do web site:

 

clsConn conn = new clsConn();
Response.Write(conn.mtdConn(0));

Ocorre aquele erro de segurança, faça esse teste...

 

Obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

E não é que funcionou!!! rs

 

Caramba acho que a segurança é devido a ser a tag de connectionstring, ele deve barar por isso, mas se coloco com appsettings passa, que coisa...rs

 

Mas o mais interessante é ele sobrepoem o value, mas se abro o web.config o valor original continua o mesmo, tem como eu tirar esse "cache"?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara...realmente não salvou no arquivo neah..

 

mas no meu aqui..eu dei conta de fazer salvar...mas foi do primeiro jeito...

 

Configuration webConfig = WebConfigurationManager.OpenWebConfiguration("~");
			ConnectionStringsSection dbConnString = webConfig.ConnectionStrings;

			dbConnString.ConnectionStrings["ConnString"].ConnectionString = "Teste";

			webConfig.Save();

Mas voce pode fazer da seguinte forma...removendo e adicionando...nao custa tentar enah...

 

			Configuration webConfig = WebConfigurationManager.OpenWebConfiguration("~");
			ConnectionStringsSection dbConnString = webConfig.ConnectionStrings;

			////Alterando
			//dbConnString.ConnectionStrings["ConnString"].ConnectionString = "Teste";

			//Removendo
			dbConnString.ConnectionStrings.Remove("ConnString");

			////Adicionando
			dbConnString.ConnectionStrings.Add(new ConnectionStringSettings("ConnString", "ConnString"));

			webConfig.Save();

 

Boa sorte ai..espero a resposta..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Xiiii, o problema agora é o fato de que em componentes não consigo usar:

 

ConnectionString="<%$ appSettings:admix %>"

Tenho que conseguir fazer isso no connectionString mesmo...

 

Pois não quero ficar instanciando classe no .cs só para passar a conection, agora o que será esse problema de segurança que relatei no 1º post?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.