ASP.NET:无法将 Web 应用程序切换到调试模式
Posted
技术标签:
【中文标题】ASP.NET:无法将 Web 应用程序切换到调试模式【英文标题】:ASP.NET: Can't switch web application into DEBUG mode 【发布时间】:2011-01-14 18:00:48 【问题描述】:我有一个 ASP.NET 3.5 Web 应用程序。对于应用程序:
配置设置为“DEBUG; 为“DEBUG”配置选中“Define DEBUG constant”复选框; web.config 文件包含“true”作为“编译”节点的“调试”属性的值。不过还是下面的代码:
#if ( _DEBUG )
const bool DebugMode = true;
#else
const bool DebugMode = false;
#endif
string strSettings = string.Concat("(DebugMode: ", DebugMode, ")");
将“DebugMode: False”放入结果字符串。同时我无法在调试模式下使用 VisualStudio 连接到应用程序...
问题:
如何获得调试模式的真正价值?
【问题讨论】:
【参考方案1】:这是 C# 吗?常量是DEBUG
,而不是_DEBUG
。
【讨论】:
常量在 Visual Studio 中定义...是的,它默认为 DEBUG,但没有什么能阻止您将其重命名为您想要的任何内容! @Pauli,这是真的,但问题并没有这样做。我也不会将重命名的编译器指令称为“真正的价值”。【参考方案2】:您是否将网站编译为 Web 应用程序?
编译预处理器指令的 _DEBUG
常量由 Visual Studio 设置并像这样传递给编译器
csc /define:_DEBUG
但是当您访问该网站时,它通常不是由 Visual Studio 编译的,而是 asp_net 编译器,它只查看编译部分的调试属性。您可以在运行时使用
检查此属性的值HttpContext.Current.IsDebuggingEnabled
如果您真的需要在网页中定义符号,您可以通过在 web.config 中指定 /define 参数将其传递给编译器
<configuration>
<system.web>
<compilation debug="true">
<compilers>
<compiler language="C#;Csharp" compilerOptions="d:_DEBUG"/>
</compilers>
</compilation>
</system.web>
</configuration>
【讨论】:
保利,感谢您的回答。正如我提到的,我有网络应用程序(不是网站)。这意味着应用程序需要在访问之前由 VS 编译(与网站相反)。实际上,对我来说,应用程序的“以上是关于ASP.NET:无法将 Web 应用程序切换到调试模式的主要内容,如果未能解决你的问题,请参考以下文章
从调试模式切换到发布模式时,C# Asp.Net Webservice 抛出异常
ASP.NET MVC5/IIS Express 无法调试 - 代码未运行
ASP.NET Core Web 应用程序开发期间部署到IIS自定义主机域名并附加到进程调试
IIS7web服务器调试ASP.net程序遇到的一些故障的解决办法