如何仅在调试模式下部署到azure时关闭自定义错误

时间:2012-05-31 13:29:04

标签: asp.net azure

我正在使用带有转换XSLT的Web.Debug.config来关闭自定义错误的网站

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

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

来自

Azure web.config per environment

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

4 个答案:

答案 0 :(得分:12)

从Visual Studio 2015开始,对于“App Service”,打开Server Explorer并导航到Azure - &gt;应用服务 - &gt; {资源组名称} - &gt; {app service name} - &gt;文件 - &gt; web.config中。

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

答案 1 :(得分:9)

  

然而,在部署到azure

时似乎没有考虑到这一点

可能是因为你的普通web.config不包含一个元素(我今天遇到了同样的问题)。当然,只有在实际存在要应用的东西时才能应用'替换'的变换。

  

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

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

答案 2 :(得分:7)

事实是,您将添加到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>

答案 3 :(得分:1)

您需要在 web.config

中添加此行
<customErrors mode="Off"/>

web.config.release

<system.web>
     <customErrors mode="Off" xdt:Transform="Replace"/> 
    <compilation xdt:Transform="RemoveAttributes(debug)" />    
  </system.web>

使用1单击发布时,它将从web.config.release替换为web.config 因此,如果web.config没有customErrors标记,则会忽略