ASP.NET网站希望在IIS上调试== false



尝试将其添加到Web.config

<compilation debug="false" targetFramework="4.0">
</compilation>

但是,网站仍在#if debug中执行代码

*ASPX文件上的Inline语句&lt;%#if Debug%>有效,但也需要.cs代码。

NB开发和实时网站上的同一框

#if后端.cs文件中的指令由C#编译器,而不是ASP.NET处理。
将您的项目设置为发布配置,以便在vs中编译DLL时未定义该符号。

compilation debug元素与调试预处理器指令不同。您需要在发布模式下重新编译您的网站。

用调试符号编译的二进制文件呢?

几个人发现非常有用的一种情况是 编译/预编译应用程序或关联的类库 调试符号使得更详细的堆栈跟踪和线路错误 发生错误时可以从中检索消息。

好消息是,您可以在没有拥有的情况下执行此操作 开关启用了生产。 具体来说,您可以使用Web部署项目或Web 申请项目可以通过调试预先编译您的网站代码 符号,然后将开关更改为 在您在服务器上部署应用程序之前,错误权利。

编译的组件中的调试符号和元数据将 增加应用程序的内存足迹,但这可以 有时,对于更详细的错误消息是一个不错的权衡。

http://weblogs.asp.net/scottgu/archive/2006/04/11/don_1920_t-run-production-asp.net-applications-with-debug_3d001d20_true_true_true_true_true_true_true_true_true_true_true_true_true_true_true_true_true_true_1d20_-enabled.aspx

确保也发布编译配置。在Visual Studio中,构建菜单> Configuration Manager,并确保为您的所有程序集选择"释放",并且/或Active解决方案配置。

最新更新