我在 Azure 上有一个基于 Tomcat 9 的应用程序服务(请参阅附加的堆栈),该服务具有季节性使用模式,我需要在夏季将其切换到较低的应用程序服务计划。
该应用程序一直在 B3 sku 计划上完美运行,直到赛季开始,然后切换到 P1V3。到目前为止一切顺利。
现在我想在“休眠”期间将其切换回 B3,因为它便宜 50% 以上,并且足以满足休眠要求。削减成本是最常识性的。
但是 Azure 不允许这样做,并显示消息“ 目标 sku('Basic')不支持 CustomErrorPages,请在进行此更改之前删除所有自定义错误页面。”
我无法删除这 3 个条目,它们也出现在另一个已经运行的 B3 Web 应用程序上,使用相同的堆栈,没有自定义错误页面,并且 Az 敦促我升级到高级计划(见下文)。我肯定不需要或不想这样做。
我尝试设置和删除自定义错误页面,希望在某个时候假定一些默认值,并且我想明确地取消配置/删除自定义错误页面。
我已经在网上搜索了一周,寻找现在可用的解决方案,副驾驶说该解决方案仅适用于基于 ASP.NET 的 Web 应用程序。与此同时,成本毫无意义地增加,我的网络应用程序大部分闲置,但我需要让它继续运行,以便用户能够访问他们的帐户数据,直到赛季再次开始。
我错过了什么?
由于 B3 计划不支持 Azure 门户定义的自定义错误页面,因为它需要高级计划,因此可以通过编辑
web.xml
文件直接在 Tomcat 应用程序中配置自定义错误页面。此方法将独立于 Azure 应用服务计划运行。
<error-page>
<error-code>500</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/file_not_found.html</location>
</error-page>
将这些行添加到 web.xml 配置文件中,将所有 Tomcat 404 错误重定向到定义的页面。
自定义错误页面(
file_not_found.html
和 error.html
)位于 Web 应用程序中的适当位置。
MyWebApp/
├── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── mywebapp/
│ │ └── App.java
│ ├── resources/
│ └── webapp/
│ ├── WEB-INF/
│ │ ├── web.xml
│ └── error_pages/
│ ├── file_not_found.html
│ └── error.html
└── pom.xml
如果预算是问题,您可以自动/手动扩展您的实例。
要降级您的计划,请转到
Scale up(app service)
。