I have recently published a web application using the "Publish Web Site" option
of the solution explorer from Visual Studio 2005, I have published the website
so that the pages could not be updated, do I need to set the web.config so that
it contains <compilation defaultLanguage="c#" debug="false"> before I publish
the web site or can I make this configuration change on the deployment machine
after the site has been deployed?
Thanks for posting.
As for ASP.NET 2.0 web applications, the page's codebehind classes and
other source files(in App_Code) and components(DataSet or localization
resource) are dynamically compiled, and the build type (debug or release)
is specified by the web.config's <compilation debug="xxx" /> attribute. And
this is the same when we manually precompile the web application through
aspnet_compiler tool. If use the "Publish WebSite" menu in VS 2005 ide, it
will force a release build, however , if you choose the "updatalbe" option,
at runtime our aspx pages's dynamic classes will still be compiled as the
version specified in web.config file. The difference between "updatable"
and "non-updatable" is that "updatable" make the web pages partially
precompiled, there still require some dynamic compilation at runtime for
each page. While "non-updatable" make a full precompilation so that pages
do not need additional dynamic compilation at runtime.
Therefore, it is always recommended that we change the <compilation
debug="xxx" /> to the corretly value before we perform precompilation for
deployment. In addition, here is a good web article discussing on this: