当前位置:  开发笔记 > 后端 > 正文

扩展Asp.Net需要帮助

如何解决《扩展Asp.Net需要帮助》经验,为你挑选了1个好方法。

正如你们大多数人都知道,如果我把一个在asp.net应用程序的根命名app_offline.htm文件,它将应用程序脱机这里详述.

你也会知道,虽然这很好,但是当它正在进行时,IIS实际上会返回一个404代码,并且微软不会像这里提到的那样对它做任何事情.

现在,由于Asp.Net一般是如此可扩展,我认为不应该有一种方法来过度使用这个状态代码来返回503吗?问题是,我不知道从哪里开始寻求改变.

救命!



1> mdb..:

app_offline.htm的处理是硬编码在ASP.NET管道,并不能修改:见CheckApplicationEnabled()HttpRuntime.cs,这里如果应用程序被认为是离线的,它抛出一个非常不配置的404错误.

但是,创建自己的HTTP模块来做类似的事情当然是微不足道的 - 在这种情况下,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("

{0}

", ctx.Response.Status)) ctx.Response.End() End If End Sub

当然,这只是一个起点:通过使返回的HTML更友好一点,您也可以向用户显示一个不错的"我们会马上回来"页面.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有