我的MVC 5项目有三个配置文件. web.config,web.debug.config和web.release.config.
我想在发布时运行时关闭编译调试,但似乎无法让它工作.
在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>
解决方法
在你的web.config中:
<compilation debug="true" ...
在你的web.release.config中:
<compilation xdt:Transform="RemoveAttributes(debug)" />
这将在编译标记上设置debug属性的转换,以便将其删除.您无需在web.debug.config中设置任何转换,因为您不希望在调试模式下更改配置.
完成后,发布(部署)您的项目.要测试它,将项目发布到文件夹,然后在那里打开web.config.您将看到web.config已被转换.配置转换是一种部署功能.
更多信息:http://www.asp.net/mvc/overview/deployment/visual-studio-web-deployment/web-config-transformations
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。