请帮助我解决我在网络应用程序中遇到的一个奇怪问题。在下面的场景中,图像(公司徽标)未在运行时呈现。
我设计了一个名为 default2.aspx 的非常简单的页面。此页面的目的是在应用程序停机时作为维护页面。 实现此目的的逻辑是在web.config中使用SiteIsActive切换键,使用" N"代表停机时间。
在Global.asax中,我实现了" Application_BeginRequest" 方法来检查SiteIsActive标志并重定向到default2.aspx。 虽然功能在两个SiteIsActive案例中都正常运行,但图像(公司徽标)在运行时未在default2.aspx中呈现。 但是当我通过将其设置为启动页面直接浏览default2.aspx时,徽标/图像会在运行时显示。
注意:此方案正在Visual Studio 2015中进行尝试,尚未部署。
当交换机(SiteIsActive = N)并被重定向到default2.aspx
时,对于为什么没有渲染图像的任何建议都会有所体现下面的default2.aspx代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html>
<head runat="server">
<link href="~/Image/BrightSide.css" rel="stylesheet" type="text/css"/>
<title>AAA</title>
</head>
<body id="bodyindex">
<div id="wrap" style="width: 1000px;">
<div id="header">
<table style="background-color: rgb(255, 255, 255);" width="100%">
<tbody>
<tr>
<td width="15%">
<img src="~Image/AAA_Image.jpg" /></td>
<td width="32%">
<h1 style="font: bolder 3.1em 'Trebuchet MS',Arial,Sans-serif;">AAAy</h1>
</td>
<td align="right" width="53%"> </td>
</tr>
</tbody>
</table>
<br>
<br>
</div>
<div id="content-wrap">
<h1 align="center">The AAA website is currently unavailable due to scheduled maintenance.<br />
<br />
We are sorry for the inconvenience. Please re-visit the site.
<!-- <div class="caption" style="height:50px;"><div class="content"></div></div> -->
</h1>
<br>
<br>
<br>
<div style="clear: both;">
<!-- wrap lower portion-->
<div style="width: 75%; float: left;">
<h1> </h1>
<p> </p>
</div>
<br>
<!-- content-wrap ends here -->
</div>
<!-- footer starts here -->
<div id="footer">
<div class="footer-left">
<p class="align-left">
� 2017 <strong>AAA</strong>
</p>
</div>
<div class="footer-right">
<p class="align-right"> </p>
</div>
</div>
<!-- footer ends here -->
<!-- wrap ends here -->
</div>
</div>
</body>
</html>
Application_BeginRequest中定义的代码。
我实施的逻辑是在两个注释&#34; //维护逻辑页面&#34;。另请注意我已经包含了一些用于IPAddress排除的逻辑,对于这些IP,常规网站将被显示,而其他人则显示维护页面:
public void Application_BeginRequest(object sender, EventArgs e)
{
// Check the application validity
LicenseHelper.CheckValidity();
// Enable request debugging
// Application start events
FirstRequestInitialization(sender, e);
CMSRequest.BeforeBeginRequest(sender, e);
// Check if Database installation needed
if (InstallerFunctions.InstallRedirect())
{
return;
}
// Enable debugging
SetInitialDebug();
CMSRequest.AfterBeginRequest(sender, e);
// Logic for maintainence page
HttpContext context = HttpContext.Current;
string maintenancePage = System.Configuration.ConfigurationManager.AppSettings["Maintenance_RedirectTo"];
string siteIsActive = System.Configuration.ConfigurationManager.AppSettings["SiteIsActive"];
if (siteIsActive != null && siteIsActive.Equals("N", StringComparison.CurrentCultureIgnoreCase))
{
if (!context.Request.Path.Equals("/" + maintenancePage))
{
string exceptionIP = string.Empty;
string ips = System.Configuration.ConfigurationManager.AppSettings["Maintenance_Redirect_Exceptions"];
string ipAddress2 = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (ipAddress2 == null || ipAddress2.ToLower() == "unknown")
ipAddress2 = Request.ServerVariables["REMOTE_ADDR"];
//ipAddress2 = "127.0.0.1";
if (ips != null)
{
System.Collections.Generic.List<string> ipAddressList = new System.Collections.Generic.List<string>(
ips.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries));
if (ipAddressList != null)
{
exceptionIP = ipAddressList.Find(delegate (string ipAddress)
{
return ipAddress.Equals(ipAddress2, StringComparison.CurrentCultureIgnoreCase);
});
}
}
if (exceptionIP == null || exceptionIP.Length <= 0)
{
this.Response.Redirect(maintenancePage);
}
}
}
// Logic for maintainence page
}