为什么我的MVC视图是用PDB编译的?

时间:2015-06-24 19:30:49

标签: asp.net asp.net-mvc

现在这很有趣!

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

我查看了服务器上的“Temporary ASP.NET Files”文件夹 - ,每个视图都有PDB文件。

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

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

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

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

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

1 个答案:

答案 0 :(得分:5)

发现它!!

似乎这是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>

至少我在我的&#34; Temp ASP.NET Files&#34;中找不到.pdb了。

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