【问题标题】:how to get Application_Start (in Global.asax.cs) to be called before requests in asmx web service on IIS 6.0如何在 IIS 6.0 上的 asmx Web 服务中的请求之前调用 Application_Start(在 Global.asax.cs 中)
【发布时间】:2010-01-12 09:33:53
【问题描述】:

在我的 ASMX WS Application_Start 中,当第一个请求到达时被调用。那对我来说有点太晚了。 iisreset 完成后有什么方法可以调用它吗?

what is the right way to spawn thread for database IO in asmx web service? 中,我询问了有关预加载系统数据的问题,他们建议我在 Application_Start 中进行加载。但是,如果它只在第一次请求时完成,它是相同的,因此建议根本没有用。

【问题讨论】:

    标签: c# web-services iis initialization asmx


    【解决方案1】:

    如果您拥有最新、最新的 IIS 7.5,您可能需要查看最近添加的 Application Initialization。我个人没有用过,但它看起来可能有一些你需要的东西。

    概述

    IIS 7.5 Beta 1 的 IIS 应用程序预热使 IT 专业人员能够通过在第一个请求到达之前加载 Web 应用程序来提高其网站的响应能力。通过主动加载和初始化所有依赖项,例如数据库连接、ASP.NET 代码编译和模块加载,IT 专业人员可以确保他们的网站始终响应,即使他们的网站使用自定义请求管道或如果应用程序池被回收。

    好处:

    通过预加载工作进程来减少首次请求的响应时间 IIS 应用程序预热允许 IT 专业人员将 Web 应用程序配置为在第一个请求到达之前在 Web 服务器启动时预加载。通过预加载应用程序,工作进程能够减少响应第一个 Web 请求所需的时间。数据库连接、.NET Framework 等依赖项的加载和初始化,以及 ASP.NET 应用程序和依赖项的即时编译,在请求到达服务器时已经执行完毕。

    在发生重叠回收时通过预加载工作进程来提高可靠性 重叠回收场景中第一个请求的响应时间也通过预加载依赖项来减少。回收的工作进程只会传达其准备情况,并在完成加载和初始化配置指定的资源后开始接受请求。

    自定义应用程序的预加载 IIS 应用程序预热可以配置为通过使用特定网页和用户身份来初始化 Web 应用程序。这使得根据初始化逻辑创建可以同步或异步执行的特定初始化过程成为可能。此外,这些过程可以使用特定的身份来确保正确的初始化。

    【讨论】:

    • 对不起。我忘记了版本。我正在使用 IIS 5.1 和 6.0 版。有什么我可以做的吗?
    • 如果在早期版本中不可能做到这一点,那就太荒谬了。我认为从 0.1 版开始就有这种需求,因为几乎所有应用程序都有某种初始化任务。
    • 大多数这样的初始化任务可以在第一次请求时发生。
    • 谢谢!他们当然可以,但这会延迟请求。我真的想不出任何需要更长时间的请求比需要更短时间的请求更好的情况;)
    • 不幸的是,热身模块的测试版已被删除。http://forums.iis.net/t/1176740.aspx
    【解决方案2】:

    您可以创建一个简单的程序来向您的 Web 服务发出虚拟请求。这将第一次触发Application_Start

    将此简单程序作为计划任务运行,在计算机启动时运行。

    【讨论】:

    • 谢谢约翰!我也是这么想的。问题是服务器永远不会关闭。我真的很惊讶没有办法事先进行初始化......你认为有什么办法可以根据 IIS 启动来安排任何事情吗?
    • 是的,有。在 IIS 7.5 中。确保您的管理层知道升级的原因。然后,也许他们会在一年左右的时间内升级。
    • “在计算机启动时运行”这不一定有帮助,如果池回收已打开。您可以将其注册为 Windows 服务并定期运行以对应池回收
    • 使用旧版本服务器软件的人通常无法利用新功能。对于我们这些能够跟上的人,请参阅iis.net/downloads/microsoft/application-initialization
    猜你喜欢
    • 2016-10-15
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多