我的MVC 5项目有三个配置文件。 web.config
,web.debug.config
和web.release.config
。
我想在发布时运行时关闭compilation debug
,但似乎无法让它工作。
在web.config中
<compilation debug="true"/>
在web.release.config
中<compilation debug="false"/>
当我在发布模式下运行时,HttpContext.Current.IsDebuggingEnabled
仍然等于true
(仍然附加到调试器)。
我做错了什么?我尝试将标记从主web.config
中取出并放入web.debug.config
,但调试器只是抱怨并要求我将其重新放入web.config
更新
我的web.release.config看起来像这样
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="404" />
<error statusCode="404" path="/error/notfound" responseMode="ExecuteURL" />
<remove statusCode="403" />
<error statusCode="403" path="/error/forbidden" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<!--<compilation debug="false"/>-->
</system.web>
答案 0 :(得分:7)
在web.config
:
<compilation debug="true" ...
在web.release.config
:
<compilation xdt:Transform="RemoveAttributes(debug)" />
这将在transform
标记的debug
属性上设置compilation
,用于remov
。您不需要在web.debug.config
中设置任何转换,因为您不希望在调试模式下更改配置。
完成后,发布(部署)您的项目。要对其进行测试,请将项目发布到文件夹,然后在那里打开web.config
。您将看到web.config
已被转换。配置转换是一种部署功能。
此处有更多信息:http://www.asp.net/mvc/overview/deployment/visual-studio-web-deployment/web-config-transformations