【问题标题】:showing a splash page while uploading an asp.net application在上传 asp.net 应用程序时显示启动页面
【发布时间】:2011-10-13 10:13:08
【问题描述】:

我们有一个实时部署的 ASP.Net 应用程序,该应用程序非常繁忙,上传二进制文件(bin 文件夹)后,加载大约需要 30 - 60 秒。目前,我们正在相对频繁地进行更新和维护(一天一到两次),因为这个项目刚刚启动。

系统目前使用 1 个网络服务器,网站托管在 IIS 上。我们暂时不打算增加服务器数量。基本上,我们希望当用户访问网站时,例如 www.website.com,他们会得到一个启动页面,例如:

Website undergoing maintenance and will be back online in a moment

我们已经尝试过这种方法 - 在 IIS 中,我们按此顺序定义了默认文档(顶部优先)

1. splashPage.html
2. default.aspx 

现在,当网站运行正常时,我们将splashPage.html 重命名为splashPage2.html,这样它就不会被IIS 找到,并恢复到#2 条目default.aspx。在我们上传之前,我们将它从splashPage2.html 重命名为splashPage.html,以便它找到并显示它。

问题在于 IIS 似乎将 Web 应用程序视为一个整体 - 即使 HTML 文件不需要后台处理,如果 Web 应用程序仍在加载,用户仍然需要等待 30 - 60 秒才能加载,违背了启动页面的目的。

有什么想法可以通过当前的基础设施克服这个问题吗?

【问题讨论】:

    标签: c# asp.net web-applications splash-screen


    【解决方案1】:

    App_Offline.htm 将为您解决问题。

    基本上,将此文件(包括您想要的标记)放在应用程序的根目录中,您的用户将自动看到内容,直到您将其取出。

    【讨论】:

    • 我的问题是应用程序加载时间。 app_offline.htm 技巧虽然在概念上很好,但会在 Web 应用程序存在时关闭它。一旦我重命名它,应用程序就会启动。这仍然会留下 30-60 秒的时间,用户不知道发生了什么
    • 您使用的是预编译站点(全部捆绑到 .dll 中,您无法查看代码隐藏)?如果没有,那可能会让您更快地启动。除此之外,您无能为力 - 以您描述的方式频繁更新您的网站并不是最好的方法。也许每天都有一个宣布的“维护”期,或者在一夜之间完成。
    • 如果是问题维护,就得当场做,不能等。是的,我使用的是预编译网站。
    • 我认为您将不得不忍受它 - 听起来您的网站会受益于较小的用户群进行的更多测试,以避免每天多次“维护”。
    【解决方案2】:

    是应用程序

    【讨论】:

    • 我使用的是网络应用程序而不是网站,因此它是自动编译的
    • 关于profiling,这个差距主要是需要的数据库项的加载,以及NHibernate的初始化,没有太多可以改进的地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多