2011-01-14 13 views
1

私はASP.NET 3.5 Webアプリケーションを持っています。アプリケーションの場合:ASP.NET:Webアプリケーションをデバッグモードに切り替えることができません

  • 設定に設定し、「DEBUG;
  • "DEBUG定数の定義DEBUG "設定" チェックボックスがチェックされ、";
  • web.configファイルには、 'デバッグ' の値として '真' が含ま'コンパイル' ノードの属性すべてにもかかわらず

次のコード:。

#if (_DEBUG) 
    const bool DebugMode = true; 
#else 
    const bool DebugMode = false; 
#endif 
string strSettings = string.Concat("(DebugMode: ", DebugMode, ")"); 

プット"DebugMode:False"を結果文字列に変換します。私はデバッグモードでVisualStudioを持つアプリケーションに接続することはできません同じ時間で...

質問:

は、どのように私は、デバッグモードの真の価値を得ることができますか?

答えて

1
でそれを指定することにより、コンパイラに引数を定義/渡すことができ、

HttpContext.Current.IsDebuggingEnabled 

を使用して、実行時にこの属性の値を確認することができます

これはC#ですか?定数はDEBUGであり、_DEBUGではありません。

+1

定数はビジュアルスタジオで定義されています...はい、デフォルトはDEBUGですが、何も名前の変更を止めませんあなたが望む世界の何にでも! –

+0

@Pauliこれは本当ですが、質問はこれをしません。名前を変更したコンパイラ指令を「真の価値」と呼ぶこともありません。 –

1

WebアプリケーションをWebアプリケーションとしてコンパイルしますか?

コンパイルプリプロセッサディレクティブのためのあなたの_DEBUG定数は、Visual Studioで設定され、コンパイラに渡され、この

csc /define:_DEBUG 

ようしかし、あなたがウェブサイトにアクセスしたときにその通常のVisual Studioでコンパイルが、asp_netコンパイラされていませんコンパイルセクションのデバッグ属性のみを調べます。あなたが本当にあなたのウェブページで定義されたシンボルが必要な場合、あなたはweb.configファイル

<configuration> 
    <system.web> 
     <compilation debug="true"> 
     <compilers> 
      <compiler language="C#;Csharp" compilerOptions="d:_DEBUG"/> 
     </compilers> 
     </compilation> 
    </system.web> 
</configuration> 
+0

Pauli、あなたの答えに感謝します。私はWebアプリケーション(Webサイトではない)を持っていると述べました。これは、アクセスする前にVSでコンパイルする必要があることを意味します(Webサイトとは対照的に)。実際、私にとっては、 ""アプリケーションの目的は何であるのか明確ではありません。 AFAIK、それはアプリケーションのためではなく、Webサイトにとって理にかなっています。 – Budda

+1

AFAIK、VSを介してWebアプリケーションをコンパイルしても、aspnet_compiler.exeが呼び出され、それを制御する唯一の方法はweb.configのコンパイルセクションです。これは、Webサイトのコンパイル時にタスクマネージャを見ることで確認できます。 idを確認すると、aspnet_compiler.exeというプロセスが表示されます。 http://msdn.microsoft.com/en-us/library/ms229863(v=VS.100).aspx –

関連する問題