【问题标题】:ASP.NET Global.asax Application_PreRequestHandlerExecuteASP.NET Global.asax Application_PreRequestHandlerExecute
【发布时间】:2014-09-27 16:58:00
【问题描述】:

我的问题是,是否有另一种方式,例如在类级别位置,我可以执行 Global.cs 中的所有应用程序方法,例如“Application_PreRequestHandlerExecute”oal 或“Application_Start”?主要目标是我想将所有这些应用程序方法隐藏到应用程序的已编译 dll 中,并将它们从 Global.cs 中取出。

谢谢

【问题讨论】:

    标签: c# asp.net global-asax


    【解决方案1】:

    您无法控制单个 aspx/单个类级别的应用程序执行流程。因为对于所有类,只有一个应用程序,它通过请求管道(预请求处理程序、请求等)。这就是为什么我们有 HTTPModule 来拦截那些管道事件。

    但无论如何,我认为您可以在这些事件中应用过滤器,如果请求是针对 abc.aspx,则只为该类执行 XYZ。

    以下链接,可能会更有帮助 - http://blogs.msdn.com/b/tmarq/archive/2007/08/30/iis-7-0-asp-net-pipelines-modules-handlers-and-preconditions.aspx

    【讨论】:

      【解决方案2】:

      您可以将 Global.ascx 中的方法转换为“单行”,以调用在您的 dll 中公开的 API。例如Application_Start() 可以调用myClass.ApplicationStart()Application_PreRequestHandlerExecute 可以调用myClass.PreRequestHandlerExecute。只需在您的应用程序命名空间中定义 public static myClass 并决定您的 API。然后在Global.cs 中导入myClass 命名空间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-27
        • 1970-01-01
        • 2016-02-25
        • 2010-10-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多