Thread View: alt.pl.comp.lang.csharp
5 messages
5 total messages
Started by Zbigniew Malec
Sun, 08 May 2011 01:52
Brak uprawnień do zapisu konfiguracji
Author: Zbigniew Malec
Date: Sun, 08 May 2011 01:52
Date: Sun, 08 May 2011 01:52
39 lines
2326 bytes
2326 bytes
Witam,
mam problem z zapisem konfiguracji aplikacji. Chciałem skorzystać z
ConfigurationManagera w jego najprostszej formie oraz konfiguracji
zapisywanej w katalogu domowym użytkownika. W tym celu napisałem poniższy
kod:
Configuration configuration =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
configuration.AppSettings.Settings.Add(OPTION_LOOP,
Loop.ToString());
configuration.Save();
Niestety dostaję wyjątek
System.Configuration.ConfigurationErrorsException: An error occurred
executing the configuration section handler for appSettings. --->
System.InvalidOperationException: ConfigurationSection properties cannot be
edited when locked.
at System.Configuration.SectionInformation.VerifyIsEditable()
at
System.Configuration.MgmtConfigurationRecord.GetConfigDefinitionUpdates(Boolean
requireUpdates, ConfigurationSaveMode saveMode, Boolean forceSaveAll,
ConfigDefinitionUpdates& definitionUpdates, ArrayList& configSourceUpdates)
--- End of inner exception stack trace ---
Szukałem na sieci i sporo ludzi ma z tym problem, niestety niewiele jest
konkretnych odpowiedzi. Jedyne co znalazłem (podobno) sensownego to:
http://social.msdn.microsoft.com/forums/en-US/clr/thread/7bebd705-75e4-4ea2-90d2-2ac8f6819dfa/
ale mi się to nie ładuje.
Ktoś może wie o co chodzi?
Wyjatek pojawia się próbie zapisania wcześniej nieistniejącej konfiguracji
(jest to pierwsze, inicjalne zapisanie przez aplikację).
--
Pozdrawiam
Zbyszek Malec
Re: Brak uprawnień do zapisu konfiguracji
Author: Zbigniew Malec
Date: Thu, 12 May 2011 22:32
Date: Thu, 12 May 2011 22:32
100 lines
3772 bytes
3772 bytes
On Sun, 8 May 2011 03:52:36 +0200, Zbigniew Malec wrote:
> Witam,
> mam problem z zapisem konfiguracji aplikacji. Chciałem skorzystać z
> ConfigurationManagera w jego najprostszej formie oraz konfiguracji
> zapisywanej w katalogu domowym użytkownika. W tym celu napisałem poniższy
> kod:
Dobra, już nie mam tego problemu. Zmieniłem podejście i teraz mam inny,
jednak ciągle związany z konfiguracją. Mianowicie zdefiniowałem sobie
sekcję konfiguracyjną:
using System.Configuration;
namespace TopazMSS.Config
{
class ProgramConfigurationSection : ConfigurationSection
{
[ConfigurationProperty("Mute", IsRequired = false)]
public MuteElement Mute
{
get
{
MuteElement mute = (MuteElement)this["mute"];
if (mute == null)
{
mute = new MuteElement();
base["mute"] = mute;
}
return mute;
}
}
}
}
Element konfiguracji MuteElement
using System.Configuration;
namespace TopazMSS.Config
{
class MuteElement : ConfigurationElement
{
[ConfigurationProperty("value")]
public bool Value
{
get
{
return (bool)this["value"];
}
set
{
this["value"] = value;
}
}
}
}
Kod zapisujący
public void Store()
{
Configuration configuration =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming);
ProgramConfigurationSection configSection =
configuration.GetSection("configuration") as ProgramConfigurationSection;
if (configSection == null)
{
configSection = new ProgramConfigurationSection();
configSection.SectionInformation.AllowExeDefinition =
ConfigurationAllowExeDefinition.MachineToRoamingUser;
configuration.Sections.Add(CONFIGURATION_SECTION,
configSection);
}
configSection.Mute.Value = true;
configuration.Save(ConfigurationSaveMode.Full);
}
i dostaję wyjątek NullReferenceException w linii:
MuteElement mute = (MuteElement)this["mute"];
Z tego co wyśledziłem, to rzucane jest to z wnętrza this["mute"]
Juz trzeci dzień (wieczór) nad tym siedzę i nie mam pomysłu, co może być
nie tak.
A w ogóle to ten cały Visual 2010 Express (czy jak mu tam), to jakiś dziwny
jest. Jak odpalam tę aplikację przez ctrl+F5 to wykłada się na samym
początku, przed pokazaniem formularza, a jak odpalam z F5 to formularz się
pokazuje. Tak jakby skompilowany kod był inny dla debug i release (w sensie
mój kod). Da sie jakos wymusić rebuild (F6? shift+F6?)? Bo już mnie szlag
trafia.
--
Pozdrawiam
Zbyszek Malec
Re: Brak uprawnień do zapisu konfiguracji
Author: Zbigniew Malec
Date: Thu, 12 May 2011 22:51
Date: Thu, 12 May 2011 22:51
12 lines
1165 bytes
1165 bytes
On Fri, 13 May 2011 00:32:42 +0200, Zbigniew Malec wrote:
> [ConfigurationProperty("Mute", IsRequired = false)]
> public MuteElement Mute
> {
[ConfigurationProperty("mute")] - mała litera i jest ok.
Czy to gdzieś w dokumentacji jest opisane?
--
Pozdrawiam
Zbyszek Malec
Re: Brak uprawnień do zapisu konfiguracji
Author: 3P
Date: Fri, 13 May 2011 17:13
Date: Fri, 13 May 2011 17:13
17 lines
1486 bytes
1486 bytes
Dnia 13-05-2011 o 00:51:50 Zbigniew Malec <alpha@invalid.invalid>
napisał(a):
> On Fri, 13 May 2011 00:32:42 +0200, Zbigniew Malec wrote:
>
>> [ConfigurationProperty("Mute", IsRequired = false)]
>> public MuteElement Mute
>> {
>
> [ConfigurationProperty("mute")] - mała litera i jest ok.
> Czy to gdzieś w dokumentacji jest opisane?
>
A w xml-u masz małą, czy dużą?
--
3P
Re: Brak uprawnień do zapisu konfiguracji
Author: Zbigniew Malec
Date: Sun, 15 May 2011 02:11
Date: Sun, 15 May 2011 02:11
13 lines
1400 bytes
1400 bytes
On Fri, 13 May 2011 19:13:38 +0200, 3P wrote: > A w xml-u masz małą, czy dużą? Byłem taki sprytny, że sobie na podstawie konfiguracji chciałem tego xmla wytworzyć, więc nie jestem w stanie odpowiedzieć na twoje pytanie. Wydaje mi się, że jak dałem tam z dużej, to framework zawołał po prostu to property Mute (w debuggerze miałem dwa kolejne wejścia do tej metody przy czym w kodzie wywoływałem ją tylko raz). -- Pozdrawiam Zbyszek Malec
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads