当我在IIS中托管的网站上进行一些主要部署时,我想建立一个网站来维护“外部”访问者。我已阅读有关在Web根目录中创建“App_Offline.htm”页面的信息。我仍然可以浏览localhost下的网站(我将登录到服务器),而通过域名浏览的访问者可以看到“关闭维护”页面吗?在我向访问者提供更改之前,我想做一些测试。
答案 0 :(得分:1)
默认情况下,当您打开app_offline.htm
时,asp.net会停止运行该网页。
但你可以通过global.asax上的一些编程来实现:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
// if its not local - let see if we go offline
if (!app.Request.IsLocal)
{
// the file we look now is the app_offline_alt.htm
string cOffLineFile = HttpRuntime.AppDomainAppPath + "app_offline_alt.htm";
// if exist on root
if (System.IO.File.Exists(cOffLineFile))
{
using (var fp = System.IO.File.OpenText(cOffLineFile))
{
// read it and send it to the browser
app.Response.Write(fp.ReadToEnd());
fp.Close();
}
// and stop the rest of processing
app.Response.End();
return;
}
}
}
答案 1 :(得分:0)
我通过以下方式解决了这个问题:
<appSettings>
<add key="MaintenanceMode" value="true" />
</appSettings>
public class HomeController : BaseController
{
public ActionResult Offline()
{
return View("Offline");
}
}
protected void Application_BeginRequest()
{
if (WebConfigurationManager.AppSettings["MaintenanceMode"] == "true")
{
if (!Request.IsLocal && !Request.Path.Contains("bundles") && !Request.Path.Contains("Content"))
{
HttpContext.Current.RewritePath("/home/offline");
}
}
}