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

Tom*_*Tom 11 asp.net azure

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

<customErrors mode="Off" xdt:Transform="Replace"/>`
Run Code Online (Sandbox Code Playgroud)

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

每个环境的Azure web.config

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

Jam*_*mes 12

从Visual Studio 2015开始,对于"App Service",打开Server Explorer并导航到Azure - > App Service - > {resource group name} - > {app service name} - > Files - > Web.config.

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


Leo*_*ens 9

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

可能是因为你的普通web.config不包含一个元素(我今天遇到了同样的问题).当然,只有在实际应用某些内容时,才能应用"替换"的转换.

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

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


Avk*_*han 7

事实是,您将添加到web.release.config或web.debug.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>
Run Code Online (Sandbox Code Playgroud)

  • 那么在部署到azure时它会忽略变换?有点困惑,你给出的代码示例是一个变换? (3认同)