#if DEBUG在生产服务器上返回true

时间:2015-07-22 13:47:41

标签: asp.net-mvc

我们在MVC Web应用程序的Global.asax上有以下代码

<style>
  body{
    background-size: cover; 
    background-repeat: no-repeat;  
    background-attachment: fixed 
  }
</style>

&#34;编译调试&#34;属性设置为&#34; false&#34;在生产服务器的web.config中。 所以预期的行为是上面的代码永远不会被执行。它大部分时间都可以工作,但随后应用程序突然开始执行此代码。它将继续这样做直到我重置IIS。我似乎无法弄清楚为什么我们的网站突然自动进入调试模式。任何想法?

1 个答案:

答案 0 :(得分:5)

#if DEBUG行是编译器指令,只有在代码中手动定义或在构建中指定的DEBUG常量(在项目属性中设置)时才能调用它。

debug="true"的web.config编译值完全不同。要确定是否已设置,请改为使用此选项:

var compilation = (CompilationSection)ConfigurationManager
                      .GetSection("system.web/compilation");

if (compilation.Debug)
{
    //Debug is on!
}