更新数据库时在MVC3中显示“离线”页面?

时间:2011-11-09 07:16:13

标签: c# asp.net-mvc-3 iis-7.5

我有一个由SQL服务器db支持的MVC3网站。 数据库每晚都会“刷新”,大约需要30分钟。

在此期间,我可以使用app_offline.htm文件(以及可能导致的所有问题)使应用程序脱机。

数据库刷新是从Windows服务控制的,因为部分原因是从不同的源导入文本文件。

我想知道是否有一种更清洁,更好的方式来修改网站,以便它显示友好的“数据库更新”类型页面,而不会使网站脱机?

2 个答案:

答案 0 :(得分:0)

一种简单的方法是在web.config的appSettings中添加一个键,如:

<add key="MaintenanceMode" value="true" />

然后,您可以在global.asax文件中使用Application_BeginRequest事件,并检查密钥的值并重定向到维护页面。

答案 1 :(得分:0)

我通过创建DatabaseDependant:ActionResultFilterAttribute并将其应用于需要DB(或其更新部分)的所有Action方法来解决此问题。 在适当的地方也适用于某些控制器。

过滤器只检查一个值(使用注册表而不是app.config,因为允许对站点app.config进行更多共享访问)并重定向或调用基础。