【问题标题】:Global.asax in Umbraco 6Umbraco 6 中的 Global.asax
【发布时间】:2013-04-08 06:39:01
【问题描述】:

我的 Global.asax (Umbraco 4.7) 中有以下内容

  • Application_Start
  • Application_EndRequest
  • Application_Error
  • Session_Start
  • Session_End

现在我已经升级到 Umbraco 6.0.3,global.asax 继承自 Umbraco.Web.UmbracoApplication

我应该将我的事件处理程序放在哪里(以及等效的方法名称是什么)?

【问题讨论】:

    标签: umbraco global-asax


    【解决方案1】:

    这是我目前发现的。

    您可以创建自己的课程

    public class Global : Umbraco.Web.UmbracoApplication
    {
      public void Init(HttpApplication application)
      {
        application.PreRequestHandlerExecute += new EventHandler(application_PreRequestHandlerExecute);
        application.EndRequest += (new EventHandler(this.Application_EndRequest));
        //application.Error += new EventHandler(Application_Error); // Overriding this below
      }
    
      protected override void OnApplicationStarted(object sender, EventArgs e)
      {
        base.OnApplicationStarted(sender, e);
        // Your code here
      }
    
      private void application_PreRequestHandlerExecute(object sender, EventArgs e)
      {
        try
        {
          if (Session != null && Session.IsNewSession)
          {
            // Your code here
          }
        }
        catch(Exception ex) { }
      }
    
      private void Application_BeginRequest(object sender, EventArgs e)
      {
        try { UmbracoFunctions.RenderCustomTree(typeof(CustomTree_Manage), "manage"); }
        catch { }
      }
    
      private void Application_EndRequest(object sender, EventArgs e)
      {
        // Your code here
      }
    
      protected new void Application_Error(object sender, EventArgs e)
      {
        // Your error handling here
      }
    }
    

    并且让 Global.asax 从你的类继承

    <%@ Application Codebehind="Global.asax.cs" Inherits="Global" Language="C#" %>
    

    替代方法:Inherit ApplicationEventHandler - 但它不适合我

    【讨论】:

    • 你能告诉我你在 umbraco 中保存 Global 类的位置吗,这个类的名称是 Global.cs 还是 Global.asax.cs?我知道,这很奇怪,但它对我不起作用,可能是我遗漏了什么。
    • 我的是 App_Code/Global.cs 但我认为文件名并不重要
    • @pink-diamond-square 编辑没有语言格式的帖子的正确方法是为其添加正确的标签。然后网站会自动处理格式。在这种情况下,我认为您的编辑不正确,这不是 C。
    • @Lundin 感谢您的指点,上面的代码是 C#(和 .net XML),但由于问题不包括代码,我认为它可以用任何 .net 语言来回答,所以更改那里的标签会改变问题的含义。
    • if (Session != null &amp;&amp; Session.IsNewSession) 这行不起作用,如何检查会话 - 我正在使用 umbraco 7
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多