我正在一个网站上工作,我们使用 Web.Debug.config 和转换 XSLT 来关闭自定义错误
<customErrors mode="Off" xdt:Transform="Replace"/>`
但是,在部署到 azure 时似乎没有考虑到这一点。
从
我可以看到 azure 使用 .cscfg 文件,而我要完成的工作可能会涉及这些文件?部署到天蓝色但仅在调试时关闭自定义错误的最简单方法是什么?
我正在一个网站上工作,我们使用 Web.Debug.config 和转换 XSLT 来关闭自定义错误
<customErrors mode="Off" xdt:Transform="Replace"/>`
但是,在部署到 azure 时似乎没有考虑到这一点。
从
我可以看到 azure 使用 .cscfg 文件,而我要完成的工作可能会涉及这些文件?部署到天蓝色但仅在调试时关闭自定义错误的最简单方法是什么?
在 Visual Studio 2015 中,对于“应用服务”,打开服务器资源管理器并导航到 Azure -> 应用服务 -> {资源组名称} -> {应用服务名称} -> 文件 -> Web.config。
此时,您可以直接编辑 Web.Config 文件并保存 - 无需发布。
但是,在部署到 azure 时似乎没有考虑到这一点
可能是因为您的普通 web.config 不包含元素(我今天遇到了同样的问题)。当然,只有在确实要应用某些东西时,才能应用您对“替换”的转换。
部署到天蓝色但仅在调试时关闭自定义错误的最简单方法是什么?
有一个调试 web.config 和一个发布 web.config(您可以扩展 web.config)。在发布一中应用生产转换,在调试一中应用调试转换。
事实上,您将添加到 web.release.config 或 web.debug.config 中的任何内容都不会包含在最终的 web.config 中,最终的 web.config 将成为部署到 Windows Azure 的应用程序包 (CSPKG) 的一部分。如果您希望将某些 web.config 设置作为 Windows Azure 应用程序的一部分,则必须在 web.config 中显式定义。
要关闭自定义错误,您可以在 web.config 中显式添加以下内容:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
......
<system.web>
<customErrors mode="Off" xdt:Transform="Replace"/>
</system.web>
.....
</configuration>
您需要在web.config中有这一行
<customErrors mode="Off"/>
而在web.config.release
<system.web>
<customErrors mode="Off" xdt:Transform="Replace"/>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
当使用一键发布时,它会从 web.config.release 替换为 web.config 所以,如果 web.config 没有 customErrors 标签,它会忽略