我寻求帮助的方式来处理503服务不可用的问题,影响我的一个项目,每一个现在,然后。
**My Project是一个ASP.net框架,背后有C-sharp代码。
问题是,我有一台本地PC,它显示一个带有进度条的页面(它在定时器后面中继代码),每10分钟它从服务器SQL数据库读取数据,然后刷新并重新启动或等待,这取决于它在数据库中读取的信息。
这工作正常,直到服务器因维护而中断或只是过载,所以当我的页面再次读取服务器时,它会返回Http 503“服务不可用”,这就是它的状态。这并不理想,因为它是在一台无人驾驶的PC上,第一个看到它的人将是客户。
我脑子里想的是如何最好地处理它?因为我有一个global.cs代码文件,它检测到“Application_Error”,但该文件将不可用(或者它在本地可用?)).
那么,我是否需要在进度条页面后面的代码中添加一些东西,以便在刷新时返回http 503(或其他错误)时重定向到本地页面?
谢谢你的任何想法,提前帮助。
[EDIT添加代码示例]
.ASPX
<asp:Timer ID="Timer1" runat="server" OnTick="runTimer" ></asp:Timer>
.CS
protected void runTimer(object sender, EventArgs e)
{
try
{
...
bool ResetTimer = GlobalCs.CheckBusTimerEnable(out DBSetTime);
// then runs some code here to change the width value of a Progress bar, which is a Bootstrap DIV (so changes in size) and the text of some labels are updated.
...
}
...
}
类文件
public bool CheckBusTimerEnable(out string Time)
{
bool Reset = false;
Time = "";
try
{
comm = new SqlCommand("SELECT resetValue, timeValue FROM " + MyGlobalVariables.ManagementFlags + " WHERE (name='BusTimeRestart')", objConn);
Int32 numberRows = 0;
OpenConn(); // this checks for an open connection, and opens it if it is closed
SqlDataReader reader = comm.ExecuteReader();
while (reader.Read())
{
Reset = Convert.ToBoolean(reader["resetValue"]);
Time = reader["timeValue "].ToString();
break;
}
reader.Close();
reader.Dispose();
CloseConn(); // this closes an open connection, if it is still open
}
catch
{
...
}
return Reset;
}
所以,我认为发生的事情是试图用更改的信息刷新页面,它无法从服务器加载所需的资源,因为它忙碌了,所以只是返回503。但是,因为关闭这个错误异常,我希望能够运行一个本地页面,等待几分钟,然后从服务器重新加载计时器页面。或者有没有办法检查服务器是否响应正常,嗯..?
1条答案
按热度按时间093gszye1#
您也可以从IIS中处理它。打开IIS管理器,方法是单击任务栏中的工具,然后单击Internet信息服务(IIS)管理器。一旦IIS管理器打开,展开连接窗格,然后网站文件夹,并选择原始域在主面板中单击错误页面-在这里你会得到你想要你的网站重定向到内部或一些外部链接页面的页面列表添加在你的HTTP状态代码为503并继续希望这有帮助!