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

Ale*_*lex 9 asp.net asp.net-mvc

现在这很有趣!

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

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

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

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

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

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

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

Ale*_*lex 5

找到了!!

看起来这是Razor的默认设置 - 它总是使用DEBUG选项编译,你无法改变它 - 但我想我找到了解决方案.

将此添加到您的machine.config似乎解决了这个问题:

<configuration>
    <system.web>
        <deployment retail="true"/>
    <system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

至少我在"Temp ASP.NET Files"中没有再看到.pdb了.

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