39

If I don't include the debug attribute in the compilation element like this:

<system.web>
    <compilation />
</system.web>

Does it default to true or false? Links to sources would be appreciated.

oscilatingcretin
  • 9,987
  • 34
  • 115
  • 197

4 Answers4

55

The default for debug attribute in the compilation is false

MSDN - compilation Element (ASP.NET Settings Schema)

debug

Optional Boolean attribute. Specifies whether to compile debug binaries rather than retail binaries. The default is False.

Community
  • 1
  • 1
Mark
  • 1,337
  • 3
  • 25
  • 48
8

The default value is false, but beware of ASP.NET Configuration File Hierarchy and Inheritance.

So, if in a specific web.config file you find:

<system.web>
    <compilation />
</system.web>

It may very well be that the actual value it true, if there is a web.config file at a higher level with:

<system.web>
    <compilation debug="true" />
</system.web>

If you use the the IIS configuration editor, you can see the actual values. A drop down list allows you to inspect the values set at a higher level. Configuration inheritance at work

You can see that the value of debug=true. Not because it is set in the web.config file at the application level, but at the root site level.

R. Schreurs
  • 7,487
  • 4
  • 40
  • 58
4

The Default value will be false.

Here is a link to MSDN about the compilation tag for web.config.

Stacked
  • 6,254
  • 6
  • 55
  • 72
AndyC
  • 1,325
  • 1
  • 14
  • 23
2

The default is false as described by previous answers.

If debug=true is specified in Machine.config, every web app's web.config will inherit it and it will be treated as default then.

soccer7
  • 2,832
  • 2
  • 25
  • 48