gpt4 book ai didi

asp.net - 扩展 Asp.Net 所需的帮助

转载 作者:行者123 更新时间:2023-12-01 10:16:52 25 4
gpt4 key购买 nike

正如你们大多数人所知,如果我将名为 app_offline.htm 的文件放入 asp.net 应用程序的根目录中,它会使应用程序脱机 as detailed here .

您还会知道,虽然这很好,但在处理过程中 IIS 实际上会返回 404 代码,而 Microsoft 不会对此采取任何措施 as mentioned here .

现在,由于 Asp.Net 通常是如此可扩展,我在想是否应该有一种方法来覆盖此状态代码以返回 503?问题是,我不知道从哪里着手进行此更改。

帮助!

最佳答案

app_offline.htm 的处理在 ASP.NET 管道中被硬编码,无法修改:请参阅 HttpRuntime.cs 中的 CheckApplicationEnabled(),其中如果应用程序被认为处于离线状态,则会抛出一个非常不可配置的 404 错误。

然而,creating your own HTTP module做类似的事情当然是微不足道的——在这种情况下,OnBeginRequest 处理程序可能如下所示(显示了 HttpHandler 的实现,但在 HttpModule 中,想法完全相同):

Public Sub ProcessRequest(ByVal ctx As System.Web.HttpContext) Implements IHttpHandler.ProcessRequest
If IO.File.Exists(ctx.Server.MapPath("/app_unavailable.htm")) Then
ctx.Response.Status = "503 Unavailable (in Maintenance Mode)"
ctx.Response.Write(String.Format("<html><h1>{0}</h1></html>", ctx.Response.Status))
ctx.Response.End()
End If
End Sub

当然,这只是一个起点:通过使返回的 HTML 更友好一些,您还可以向用户显示一个漂亮的“我们马上回来”页面。

关于asp.net - 扩展 Asp.Net 所需的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/100860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com