asp.net - 为什么我的 MVC View 是用 PDB 编译的?

标签 asp.net asp.net-mvc

这很有趣!

我刚刚注意到我的 MVC View 中的异常在堆栈跟踪中具有行号!这意味着 - 我的观点是用 PDB 编译的。

我查看了服务器上的“临时 ASP.NET 文件”文件夹 - 是的,每个 View 都有 PDB 文件。

我有<compilation debug="false"/>在我的 web.config 中。

为什么会发生这种情况以及如何禁用它?这是生产服务器,所以我想禁用 pdb 生成。

我检查了 windir%\Microsoft.NET\Framework64\[version]\config\ 中的“web.config”、“Views/web.config”、“machine.config”、默认“web.config” - 我想我在那里没有发现任何可疑的编译器选项...我在哪里看?

或者我只是在浪费时间,这是无法更改的默认选项?

PS。更多信息,以防万一:这是一个 MVC 4 应用程序, View 是用 Razor 编写的。

最佳答案

找到了!!

这似乎是 Razor 的默认设置 - it is always compiled with DEBUG option and you can't change it - 但我想我找到了解决方案。

将此添加到您的 machine.config 似乎可以解决问题:

<configuration>
    <system.web>
        <deployment retail="true"/>
    <system.web>
</configuration>

至少我在“临时 ASP.NET 文件”中没有看到任何更多的 .pdb。

有关此标志的更多信息,请访问 ScottGu 的博客:http://weblogs.asp.net/scottgu/Don_1920_t-run-production-ASP.NET-Applications-with-debug_3D001D20_true_1D20_-enabled

关于asp.net - 为什么我的 MVC View 是用 PDB 编译的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31035371/

相关文章:

c# - 关于图例标签

asp.net-mvc - 在ASP.NET MVC中更改 Controller 名称约定

javascript - 将 "Id"选定的复选框传递给模态 Bootstrap 并发送到 Controller

asp.net - 如何更改数据或将数据添加到数据重复器并使其显示在 ASP.NET 中

asp.net - 无效操作异常 : The partial view was not found. MVC3.1

javascript - 从 TinyMCE 中删除 onSubmit 事件 Hook

asp.net - 在 LINQ-to-SQL 中运行映射存储过程方法时生成奇怪的 system.void 返回异常

c# - 具有进度可视化的 MVC 4 中的异步操作

javascript - 单击动态生成的元素不工作jquery

c# - 如何在 C# MVC Controller 操作中将动态对象序列化为 JSON?