RONUA
ROmanian .NET User Association --- Asociaţia Romană a Utilizatorilor .NET
Comunitatea dezvoltatorilor software pe .NET Framework

Probleme cu web.config

rated by 0 users
This post has 5 Replies | 1 Follower

Top 75 Contributor
Points 1,335
eskape Posted: Mon, Jun 11 2007 11:30 PM
Salut!
Am definit in web.config niste variabile si vreau sa le folosesc intr-o clasa din App_code. Problema este ca nu este vizibila aceea variabila. Cum pot rezolva problema?

Si inca o problema!
Pe evenimentul de Page_Load incarc intr-un textbox continutul variabilei definite in web.config (un text). Si am un buton care salveaza ce am scris in textbox in aceasta variabila definita in web.config. Problema este ca nu se salveaza in aceasta variabila ce am modificat, ci se salveaza exact ceea ce incarcasem in textbox in Page_Load.
Adica:
In variabila din web.config am valoarea "test". La Page_Load, textbox-ul va primi continutul variabilei, adica "test". Daca eu vin si modific ce scrie in acest textbox si scris "test2" si apas apoi pe butonul de save, in variabila din web.config se salveaza "test".
Care este problema?

Multumesc.
  • | Post Points: 50
Top 25 Contributor
Points 6,610
sirrocco replied on Tue, Jun 12 2007 6:39 AM
Pentru prima problema ar trebui sa pui codul cu probleme din web.config.
Pentru a 2-a, in momentul in care dai click pe buton, cererea se intoarce la server iar evenimentul de button_click se lanseaza dupa page_load, deci textbox-ul tau se reinitializeaza. Pune in Page_Load:

if(!isPostBack){
//    initializez variabila din web.config - astfel cand va da click pe buton nu va mai fi reinitializata.
}
  • | Post Points: 5
Top 10 Contributor
Points 30,425
tudor.t replied on Tue, Jun 12 2007 9:30 AM
eskape:
Am definit in web.config niste variabile si vreau sa le folosesc intr-o clasa din App_code. Problema este ca nu este vizibila aceea variabila. Cum pot rezolva problema?
...
In variabila din web.config am valoarea "test". La Page_Load, textbox-ul va primi continutul variabilei, adica "test". Daca eu vin si modific ce scrie in acest textbox si scris "test2" si apas apoi pe butonul de save, in variabila din web.config se salveaza "test".
Care este problema?
Problema e simpla - nu stiu ce intelegi prin "variabila" stocata in web.config - in web.config se stocheaza setari globale la nivel de aplicatie (sau folder) care in mod normal nu sunt modificate de aplicatie.
In ASP.NET 2.0 s-a adaugat suport pentru scrierea in web.config, dar asta are sens doar daca implementezi un modul de adminsitrare a aplicatiei web. Chiar si in acest caz, sunt mai multe lucruri de care trebuie sa ai grija:
- user-ul sub care ruleaza aplicatia web trebuie sa aiba drepturi sa scrie in web.config
- aplicatia web e automat restartata la fiecare modificare in web.config

Un articol despre cum poti sa modifici programatic setarile din web.config gasesti la:
http://west-wind.com/WebLog/posts/8461.aspx

  • | Post Points: 20
Top 10 Contributor
Points 68,535
eskape:
Salut!
Am definit in web.config niste variabile si vreau sa le folosesc intr-o clasa din App_code. Problema este ca nu este vizibila aceea variabila. Cum pot rezolva problema?

Versiunea 1 :
Daca sunt stocate in AppSettings(ceea ce te-as sfatui) le poti lua cu
ConfigurationManager.AppSettings
Daca sunt conectari la BD si sunt stocate in ConnectionStrings le poti lua cu
ConfigurationManager.ConnectionStrings

In general, cum a zis si tudor, NU E BINE sa scrii in web.config, ci doar sa citesti.

Versiunea 2:
Daca sunt variabile per user si vrei sa le scrii/citesti , atunci poate ar fi mai bine sa lucrezi cu Profile Provider.Acesta
Pentru o implementare cu SQL Server, vezi aici
http://www.odetocode.com/Articles/440.aspx

Pentru a stoca valorile intr-un fisier XML in loc de SQL Server, vezi aici
http://www.codeplex.com/XmlProviderLibrary


  • | Post Points: 5
Top 75 Contributor
Points 1,335
eskape replied on Tue, Jun 12 2007 11:48 AM
Multumesc pentru raspunsuri! Nu ma asteptam sa existe un forum asa de tare pentru C# si ASP.NET!
Lucrez la lucrarea de licenta si tre sa fac un CMS, "realizator" de site-uri. In web.config tin eu datele despre site-ul respectiv: nume site, template-ul ales, descrierea site-ului.
Stiu ca ar fi mai bine daca l-as tine intr-un fisier xml, dar am ales varianta cu web.config-ul pentru ca mie foarte usor sa accesez variabilele, fara sa citesc fisierul xml, apoi sa parsez ce gasesc...

  • | Post Points: 20
Not Ranked
Points 50
julaia replied on Tue, Jun 12 2007 1:18 PM
Daca vrei sa modifici datele din config file din aplicatie, mai bine sa iti faci alt web configuration file unde sa le scrii,  si in felul asta nu ti se mai restarteaza aplicatia dupa fiecare scriere in config. Va trebui sa declari noul config file in web.config:

<appSettings configSource="appSettings.config"/>

si apoi sa folosesti System.Web.Configuration.WebConfigurationManager ca sa citesti si sa scrii in el.
  • | Post Points: 5
Page 1 of 1 (6 items) | RSS

(c) RONUA 2004-2009
Powered by Community Server (Commercial Edition), by Telligent Systems