12

我正在一个网站上工作,我们使用 Web.Debug.config 和转换 XSLT 来关闭自定义错误

<customErrors mode="Off" xdt:Transform="Replace"/>`

但是,在部署到 azure 时似乎没有考虑到这一点。

每个环境的 Azure web.config

我可以看到 azure 使用 .cscfg 文件,而我要完成的工作可能会涉及这些文件?部署到天蓝色但仅在调试时关闭自定义错误的最简单方法是什么?

4

4 回答 4

15

在 Visual Studio 2015 中,对于“应用服务”,打开服务器资源管理器并导航到 Azure -> 应用服务 -> {资源组名称} -> {应用服务名称} -> 文件 -> Web.config。

此时,您可以直接编辑 Web.Config 文件并保存 - 无需发布。

于 2016-04-20T17:39:11.783 回答
9

但是,在部署到 azure 时似乎没有考虑到这一点

可能是因为您的普通 web.config 不包含元素(我今天遇到了同样的问题)。当然,只有在确实要应用某些东西时,才能应用您对“替换”的转换。

部署到天蓝色但仅在调试时关闭自定义错误的最简单方法是什么?

有一个调试 web.config 和一个发布 web.config(您可以扩展 web.config)。在发布一中应用生产转换,在调试一中应用调试转换。

于 2012-05-31T13:34:19.697 回答
8

事实上,您将添加到 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>
于 2012-05-31T20:10:01.073 回答
1

您需要在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 标签,它会忽略

于 2015-08-01T11:39:26.007 回答