473,395 Members | 1,653 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

ConfigurationErrorException when reading protected config section

I've created a custom configuration section that inherits (naturally) from
System.Configuration.ConfigurationSection. The configuration section is
working 99% fine, however I keep coming across a ConfigurationErrorException
whenever I do the following:

1. Modify and save the section in code using the
System.Configuration.Configuration.Save().
2. Refresh teh section using ConfigurationManager.RefreshSection
3. Encrypt the section, force save and save. Refresh the section using
ConfigurationManager.RefreshSection
4. Attempt to load the section from the configuration file via
ConfigurationManager.GetSection - throws exception due to the
configProtectionProvider attribute being present.

If I save the section and then restart my application, everything works
hunky dory... if I don't restart the app after encrypting/decrypting,
however, all heck breaks loose next time I try and read the section.

What's wrong? I thought calling ConfiguratoinManager.RefreshSection would
do the trick (it does the trick after I encrypt/decrypt the connectionStrings
section).

Thanks in advance.

- ryan.
Aug 9 '06 #1
10 9395
Sorry - RefreshSection is *not* working for my connection strings. So I'm
encrypting sections, refreshing them, but then cannot read from them.

"Ryan" wrote:
I've created a custom configuration section that inherits (naturally) from
System.Configuration.ConfigurationSection. The configuration section is
working 99% fine, however I keep coming across a ConfigurationErrorException
whenever I do the following:

1. Modify and save the section in code using the
System.Configuration.Configuration.Save().
2. Refresh teh section using ConfigurationManager.RefreshSection
3. Encrypt the section, force save and save. Refresh the section using
ConfigurationManager.RefreshSection
4. Attempt to load the section from the configuration file via
ConfigurationManager.GetSection - throws exception due to the
configProtectionProvider attribute being present.

If I save the section and then restart my application, everything works
hunky dory... if I don't restart the app after encrypting/decrypting,
however, all heck breaks loose next time I try and read the section.

What's wrong? I thought calling ConfiguratoinManager.RefreshSection would
do the trick (it does the trick after I encrypt/decrypt the connectionStrings
section).

Thanks in advance.

- ryan.
Aug 9 '06 #2
Hello Ryan,

As for the .net 2.0 configuration encryption and section refresh problem
you mentioned, I've just performed some tests according to your description
in my local environment. Here is my test results and some suggestion on
this:

1. When perform the configuration section protection, we can choose which
provider to use, there're two built-in providers(DPAPI provider and RSA
provider). Based on my test, the problem (ConfigurationErrorException will
occur when we use DPAPI provider , but not when using RSA provider).

2. After we have modified the configuration(any sections in it) and save it
to file and refresh the certain sections, we can use the original
configuration object to query the section data again or construcut a new
configuration object(through ConfigurationManager.OpenExeConfiguration ).
And I found that the exception will occur when we use the original
configuration object , but not occur if we reconstruct/reload a new
configuration object(from exe config file).

Therefore, I think the cause of the problem is that when using DPAPI
provider, after refresh the certain Section, the old configuration object
lose the related encryption information(since the informations first
constructed after we protect that section) and result the sequential
loading from the file failes....(it dosn't know that the section is
protected...).

If you're using the DPAPI provider("DataProtectionConfigurationProvider"),
you can consider reload a new configuration object instead of using the
original one. Here is a workable sample console application(not sure
whether you prefer VB.NET or C#, please let me know if you prefer VBNET
one):

=======================================
namespace EncryptSectionConsole
{
class Program
{
static void Main(string[] args)
{
Run();
}
static void Run()
{

Console.WriteLine("press any key to dump the
connectionstrings...");
Console.ReadLine();

DumpConnectionStrings();

Console.WriteLine("press any key to encrypt the
connectionstrings...");
Console.ReadLine();

EncryptConnectionStrings();

Console.WriteLine("press any key to dump the
connectionstrings...");
Console.ReadLine();

NewDumpConnectionStrings();

//will result exception
//DumpConnectionStrings();
}

static void DumpConnectionStrings()
{
foreach(ConnectionStringSettings connstr in
ConfigurationManager.ConnectionStrings)
{
Console.WriteLine("name: {0}, connstring: {1}",
connstr.Name, connstr.ConnectionString);
}
}

static void NewDumpConnectionStrings()
{
Configuration config =
ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);

foreach (ConnectionStringSettings connstr in
config.ConnectionStrings.ConnectionStrings)
{
Console.WriteLine("name: {0}, connstring: {1}",
connstr.Name, connstr.ConnectionString);
}
}

static void EncryptConnectionStrings()
{
Configuration config =
ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);

config.ConnectionStrings.SectionInformation.ForceS ave= true;

config.ConnectionStrings.SectionInformation.Protec tSection("DataProtectionCo
nfigurationProvider");

config.Save(ConfigurationSaveMode.Modified);
Console.WriteLine("press any key to refresh the section....");
Console.ReadLine();

config.ConnectionStrings.SectionInformation.ForceS ave = true;
config.ConnectionStrings.ConnectionStrings.Add(new
ConnectionStringSettings("new connstr", "new value"));
config.Save(ConfigurationSaveMode.Modified);


ConfigurationManager.RefreshSection("connectionStr ings");
}
}
}
================================

Hope this helps.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

==================================================

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.

==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.


Aug 10 '06 #3
Hi Steven,

Thanks for the reply. I'm finding this is occuring regardless of which
encryption method I chose (dpapi or rsa). It's really too bad that I have to
load in a new config. To me that seems like a workaround. The
ConfigurationManager should know what to do after I call RefreshSection, and
I shouldn't have to explicitly read from the disk. This becomes even more
important when we start thinking of caching.

For example - in our situation, I have a low-level library that access
connection string information using ConfigurationManager.GetSection. My
application that utilizes the low-level library, however, encrypts the
connection strings section at runtime. This means that, in order for the low
level library to always function correctly, it must always read from disk
rather than the once-only cached version returned by
ConfigurationManager.GetSection - regardless if the section was refreshed.

Is this not a bug in ConfigurationManager?

"Steven Cheng[MSFT]" wrote:
Hello Ryan,

As for the .net 2.0 configuration encryption and section refresh problem
you mentioned, I've just performed some tests according to your description
in my local environment. Here is my test results and some suggestion on
this:

1. When perform the configuration section protection, we can choose which
provider to use, there're two built-in providers(DPAPI provider and RSA
provider). Based on my test, the problem (ConfigurationErrorException will
occur when we use DPAPI provider , but not when using RSA provider).

2. After we have modified the configuration(any sections in it) and save it
to file and refresh the certain sections, we can use the original
configuration object to query the section data again or construcut a new
configuration object(through ConfigurationManager.OpenExeConfiguration ).
And I found that the exception will occur when we use the original
configuration object , but not occur if we reconstruct/reload a new
configuration object(from exe config file).

Therefore, I think the cause of the problem is that when using DPAPI
provider, after refresh the certain Section, the old configuration object
lose the related encryption information(since the informations first
constructed after we protect that section) and result the sequential
loading from the file failes....(it dosn't know that the section is
protected...).

If you're using the DPAPI provider("DataProtectionConfigurationProvider"),
you can consider reload a new configuration object instead of using the
original one. Here is a workable sample console application(not sure
whether you prefer VB.NET or C#, please let me know if you prefer VBNET
one):

=======================================
namespace EncryptSectionConsole
{
class Program
{
static void Main(string[] args)
{
Run();
}
static void Run()
{

Console.WriteLine("press any key to dump the
connectionstrings...");
Console.ReadLine();

DumpConnectionStrings();

Console.WriteLine("press any key to encrypt the
connectionstrings...");
Console.ReadLine();

EncryptConnectionStrings();

Console.WriteLine("press any key to dump the
connectionstrings...");
Console.ReadLine();

NewDumpConnectionStrings();

//will result exception
//DumpConnectionStrings();
}

static void DumpConnectionStrings()
{
foreach(ConnectionStringSettings connstr in
ConfigurationManager.ConnectionStrings)
{
Console.WriteLine("name: {0}, connstring: {1}",
connstr.Name, connstr.ConnectionString);
}
}

static void NewDumpConnectionStrings()
{
Configuration config =
ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);

foreach (ConnectionStringSettings connstr in
config.ConnectionStrings.ConnectionStrings)
{
Console.WriteLine("name: {0}, connstring: {1}",
connstr.Name, connstr.ConnectionString);
}
}

static void EncryptConnectionStrings()
{
Configuration config =
ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);

config.ConnectionStrings.SectionInformation.ForceS ave= true;

config.ConnectionStrings.SectionInformation.Protec tSection("DataProtectionCo
nfigurationProvider");

config.Save(ConfigurationSaveMode.Modified);
Console.WriteLine("press any key to refresh the section....");
Console.ReadLine();

config.ConnectionStrings.SectionInformation.ForceS ave = true;
config.ConnectionStrings.ConnectionStrings.Add(new
ConnectionStringSettings("new connstr", "new value"));
config.Save(ConfigurationSaveMode.Modified);


ConfigurationManager.RefreshSection("connectionStr ings");
}
}
}
================================

Hope this helps.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

==================================================

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.

==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.


Aug 10 '06 #4
Thanks for your reply Ryan,

I've retested the program, yes, you're right, the problems occurs for both
RSA or DPAPI provider. I agree that this should be an serious problem with
the configurationManager. Currently I'll consult some other engineers on
this and check whether this is an existing issue that is recorded, I'll
update you as soon as I get any udpate.

Thanks for your patience.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

This posting is provided "AS IS" with no warranties, and confers no rights.

Aug 11 '06 #5
Hello Rayn,

I've performed some further test and research on the problem behavior and
found the following difference when accessing the configuration Section
through different means. The "ConfigurationErrorException" only occurs
when I run the "ErrorTest1()" below first time, but does not occur when run
the "ErrorTest2()" below. It seems the problem is specific to the
ConfigurationManager.ConnectionStrings static property.

I'd like to confirm whether you're getting the same behavior as my local
test? If so, I would forward this to some other product engineers for
further investigation:
==========test code 1===========
static void ErrorTest1()
{

foreach (ConnectionStringSettings connstr in
ConfigurationManager.ConnectionStrings)
{
Console.WriteLine("name: {0}, connstring: {1}",
connstr.Name, connstr.ConnectionString);
}
Configuration config =
ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);

config.ConnectionStrings.SectionInformation.ForceS ave = true;

config.ConnectionStrings.SectionInformation.Protec tSection("DataProtectionCo
nfigurationProvider");
config.Save(ConfigurationSaveMode.Modified);

ConfigurationManager.RefreshSection("connectionStr ings");
foreach (ConnectionStringSettings connstr in
ConfigurationManager.ConnectionStrings)
{
Console.WriteLine("name: {0}, connstring: {1}",
connstr.Name, connstr.ConnectionString);
}

}
===========================================
========test code 2===============
static void ErrorTest2()
{

Configuration config =
ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);

ConnectionStringsSection connstrs =
config.GetSection("connectionStrings") as ConnectionStringsSection;

foreach (ConnectionStringSettings connstr in
connstrs.ConnectionStrings)
{
Console.WriteLine(connstr.Name + "+" +
connstr.ConnectionString);
}
connstrs.SectionInformation.ForceSave = true;

connstrs.SectionInformation.ProtectSection("DataPr otectionConfigurationProvi
der");
config.Save(ConfigurationSaveMode.Modified);

ConfigurationManager.RefreshSection("connectionStr ings");

connstrs.ConnectionStrings.Add(new
ConnectionStringSettings("newconnstr1", "value"));
config.Save(ConfigurationSaveMode.Modified);

ConfigurationManager.RefreshSection("connectionStr ings");
foreach (ConnectionStringSettings connstr in
connstrs.ConnectionStrings)
{
Console.WriteLine(connstr.Name + "+" +
connstr.ConnectionString);
}
}
=======================================

Please feel free to let me know if you have any other finding.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

This posting is provided "AS IS" with no warranties, and confers no rights.

Aug 15 '06 #6
I can confirm that the code you provided throws exception where you
specified. I would imagine, however, that it's not so much the
ConfigurationManager.ConnectionStrings that's not working, but rather
ConfigurationManager.GetSection() that has the bug (as it is using the
GetSection() method where I'm experiencing the error).

I would assume the ConnectionSTrings property on the
ConfigurationManager simply wraps around a call to GetSection()?

- ryan.

Steven Cheng[MSFT] wrote:
Hello Rayn,

I've performed some further test and research on the problem behavior and
found the following difference when accessing the configuration Section
through different means. The "ConfigurationErrorException" only occurs
when I run the "ErrorTest1()" below first time, but does not occur when run
the "ErrorTest2()" below. It seems the problem is specific to the
ConfigurationManager.ConnectionStrings static property.

I'd like to confirm whether you're getting the same behavior as my local
test? If so, I would forward this to some other product engineers for
further investigation:
==========test code 1===========
static void ErrorTest1()
{

foreach (ConnectionStringSettings connstr in
ConfigurationManager.ConnectionStrings)
{
Console.WriteLine("name: {0}, connstring: {1}",
connstr.Name, connstr.ConnectionString);
}
Configuration config =
ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);

config.ConnectionStrings.SectionInformation.ForceS ave = true;

config.ConnectionStrings.SectionInformation.Protec tSection("DataProtectionCo
nfigurationProvider");
config.Save(ConfigurationSaveMode.Modified);

ConfigurationManager.RefreshSection("connectionStr ings");
foreach (ConnectionStringSettings connstr in
ConfigurationManager.ConnectionStrings)
{
Console.WriteLine("name: {0}, connstring: {1}",
connstr.Name, connstr.ConnectionString);
}

}
===========================================
========test code 2===============
static void ErrorTest2()
{

Configuration config =
ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);

ConnectionStringsSection connstrs =
config.GetSection("connectionStrings") as ConnectionStringsSection;

foreach (ConnectionStringSettings connstr in
connstrs.ConnectionStrings)
{
Console.WriteLine(connstr.Name + "+" +
connstr.ConnectionString);
}
connstrs.SectionInformation.ForceSave = true;

connstrs.SectionInformation.ProtectSection("DataPr otectionConfigurationProvi
der");
config.Save(ConfigurationSaveMode.Modified);

ConfigurationManager.RefreshSection("connectionStr ings");

connstrs.ConnectionStrings.Add(new
ConnectionStringSettings("newconnstr1", "value"));
config.Save(ConfigurationSaveMode.Modified);

ConfigurationManager.RefreshSection("connectionStr ings");
foreach (ConnectionStringSettings connstr in
connstrs.ConnectionStrings)
{
Console.WriteLine(connstr.Name + "+" +
connstr.ConnectionString);
}
}
=======================================

Please feel free to let me know if you have any other finding.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

This posting is provided "AS IS" with no warranties, and confers no rights.
Aug 16 '06 #7
Thanks for your reply Rayn,

So you got the same test results as mine (test code 1 through error while
test code 2 works), correct?

Yes, I agree that the problem is not specific to ConfigurationManager, it
is the GetSection function and its callee (from call stack it is a
recursive fuction which throw the error).

Sure, the ConfigurationManager.ConnectionStrings static member also wrapper
the "GetSection" method. However, the problem here is that the test result
here indicate that the exception somewhat depend on the approach we get the
Section.

Anyway, I'll perform some further test through custom section since that
won't rely on any built-in static properties. I'll update you my test
results.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead
This posting is provided "AS IS" with no warranties, and confers no rights.

Aug 17 '06 #8
Hello Rayn,

After some further tests, it seems the problem does not occur when I access
the ConfigurationSection through Configuration.GetSection instead of the
static members. I've created a custom configuration section class and use
the following code to test:

#"Myhandler" is my custom configuration section class

=================================
static void ErrorTest3()
{
Configuration config =
ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);

MyHandler handler = config.GetSection("myCustomSection") as
MyHandler;
Console.WriteLine("handler.MyAttrib1:
{0}\r\nhandler.MyChildSection.MyChildAttribute1: {1}", handler.MyAttrib1,
handler.MyChildSection.MyChildAttribute1);
handler.SectionInformation.ForceSave = true;

handler.SectionInformation.ProtectSection("DataPro tectionConfigurationProvid
er");
config.Save(ConfigurationSaveMode.Modified);

ConfigurationManager.RefreshSection("myCustomSecti on");
handler.MyAttrib1 = "new attribute 1";
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("connectionStr ings");


Console.WriteLine("handler.MyAttrib1:
{0}\r\nhandler.MyChildSection.MyChildAttribute1: {1}", handler.MyAttrib1,
handler.MyChildSection.MyChildAttribute1);

}
==========================

The above test can passed without any problem(no matter on initial run or
sequential runs). Is this also the same behavior on your side? If so, it
seems there is some problems concerned to the static member's
initialization code though it also use "GetSection". So far, due to the
limitation of newsgroup support interface, I would suggest you contact CSS
if you feel it necessary to get a instant resolution or hotfix on this:

http://support.microsoft.com/

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead
This posting is provided "AS IS" with no warranties, and confers no rights.


Aug 22 '06 #9
Steven,

Thanks for the reply. While what you write is true, it's a workaround
which we cannot use in our library as our library grabs connection
strings both for windows and web applications. Thuse,
OpenExeConfiguration does not work in the Web world (as I was just
informed 5 minutes ago by one of my developers).

Is there any status update as to whether or not this was a previously
known bug in ConfigurationManager?

Thanks.

- ryan.

Steven Cheng[MSFT] wrote:
Hello Rayn,

After some further tests, it seems the problem does not occur when I access
the ConfigurationSection through Configuration.GetSection instead of the
static members. I've created a custom configuration section class and use
the following code to test:

#"Myhandler" is my custom configuration section class

=================================
static void ErrorTest3()
{
Configuration config =
ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);

MyHandler handler = config.GetSection("myCustomSection") as
MyHandler;
Console.WriteLine("handler.MyAttrib1:
{0}\r\nhandler.MyChildSection.MyChildAttribute1: {1}", handler.MyAttrib1,
handler.MyChildSection.MyChildAttribute1);
handler.SectionInformation.ForceSave = true;

handler.SectionInformation.ProtectSection("DataPro tectionConfigurationProvid
er");
config.Save(ConfigurationSaveMode.Modified);

ConfigurationManager.RefreshSection("myCustomSecti on");
handler.MyAttrib1 = "new attribute 1";
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("connectionStr ings");


Console.WriteLine("handler.MyAttrib1:
{0}\r\nhandler.MyChildSection.MyChildAttribute1: {1}", handler.MyAttrib1,
handler.MyChildSection.MyChildAttribute1);

}
==========================

The above test can passed without any problem(no matter on initial run or
sequential runs). Is this also the same behavior on your side? If so, it
seems there is some problems concerned to the static member's
initialization code though it also use "GetSection". So far, due to the
limitation of newsgroup support interface, I would suggest you contact CSS
if you feel it necessary to get a instant resolution or hotfix on this:

http://support.microsoft.com/

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead
This posting is provided "AS IS" with no warranties, and confers no rights.
Aug 24 '06 #10
Hi Ryan,

I did have checked our internal database and this issue has been recorded
so far. I would suggest you submit this issue on your public product
feedback site:

http://connect.microsoft.com/feedbac...spx?SiteID=210

However, I think it'll be hard to address it in a short time. If you would
like to get a hotfix, you can contact CSS product support for assistance.

BTW, since you mentioned that the library will be used for both desktop and
ASP.NET applications, you can consider use the HttpContext.Current property
detect whether the application is under ASP.NET runtime context or another
workaround maybe design two separate methods for processing ASP.NET and
desktop application cases.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

==================================================

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.

==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.


Aug 25 '06 #11

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
by: vasu devan via DotNetMonster.com | last post by:
Hi, I am two config section with same config section handler like follow. <section name="Myformatters" type="MyFramework.Configuration.FileHandlers.MyConfigFileHandler, MyFramework"/> <section...
0
by: Søren Lund | last post by:
Hello, I have implemented a custom config section handler by implementing the IConfigurationSectionHandler interface. I have registered this handler in web.config and everything works fine ......
2
by: Dan | last post by:
Hi there, I've got a WebService application that works fine under Windows 2000 with Framework 1.0 Installing it on Windows 2003 results in SoapExceptions being thrown when any of the methods...
5
by: alf | last post by:
Hi folks, I'm trying to read a web.config section using RoleManagerSection settings = (RoleManagerSection)System.Configuration.ConfigurationManager.GetSection("system.web/roleManager"); and I...
1
by: shapper | last post by:
Hello, How can I get the value of an element of a web.config section? For example: <A> <B> <add name = "Name1" value = "Value1" /> <add name = "Name2" value = "Value2" />
0
by: =?Utf-8?B?SWFu?= | last post by:
Hi, I'm using VS 2005 SP1 with Web Deployment Project download v8.0.51103, according to the Add/Remove programs applet. I've got a file based web service project with an associated web...
3
by: =?Utf-8?B?RHVrZSAoQU4yNDcp?= | last post by:
I've added a web deployment project and want to use the config section replacement but I'm obviously not understanding something. I have set up an alternate appSettings file,...
1
by: Showjumper | last post by:
Given this custom config section: <HttpResourceHandlerSettings compressionOn="true" daysInCache="30"> <fileSets> <add name="FileSet_CSS_Style1" value="~/styles/rdstyles.css,~/styles/thickbox.css"...
0
by: =?Utf-8?B?SXJhIEdyb2xsbWFu?= | last post by:
While debugging why a web.config section replacement was not happening in the real web application, I tried a simplified case, no replacement is enabled and the connection string is not showing up?...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.