WebApi 全局變量 Global.asax 文件

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

namespace AAAAAA.WebAPI
{
    /// <summary>
    /// WebApi全局設置
    /// </summary>
    public class WebApiApplication : System.Web.HttpApplication
    {
        /// <summary>
        ///  第一個訪問網站的用戶會觸發該方法. 通常會在該方法裏定義一些系統變量
        ///  如聊天室的在線總人數統計,歷史訪問人數統計的初始化等等均可在這裏定義.
        /// </summary>
        protected void Application_Start()
        {
            
        }

        /// <summary>
        /// 在應用程序關閉時運行的代碼,在最後一個HttpApplication銷燬之後執行
        /// 比如IIS重啓,文件更新,進程回收導致應用程序轉換到另一個應用程序域
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_End(object sender, EventArgs e)
        {
           
        }

        /// <summary>
        /// 每個用戶訪問網站的第一個頁面時觸發;
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Session_Start(object sender, EventArgs e)
        {
            string IP = this.Context.Request.UserHostAddress;
            Session["IP"] = IP;
        }

        /// <summary>
        /// 使用了session.abandon(),或session超時用戶退出後均可觸發.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Session_End(object sender, EventArgs e)
        {
            // Session["User"]; 向數據庫中記錄用戶退出時間
        }
        /// <summary>
        /// 在每一個HttpApplication實例初始化的時候執行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_Init(object sender, EventArgs e)
        {
            
        }

        /// <summary>
        /// 在應用程序被關閉一段時間之後,在.net垃圾回收器準備回收它佔用的內存的時候被調用。
        ///在每一個HttpApplication實例被銷燬之前執行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_Disposed(object sender, EventArgs e)
        {
            
        }

        /// <summary>
        ///所有沒有處理的錯誤都會導致這個方法的執行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_Error(object sender, EventArgs e)
        {
            #region 記錄錯誤日誌
            //Exception ex = Server.GetLastError().GetBaseException();
            //StringBuilder str = new StringBuilder();
            //str.Append("\r\n" + DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss"));
            //str.Append("\r\n.客戶信息:");


            //string ip = "";
            //if (Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR") != null)
            //{
            //    ip = Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR").ToString().Trim();
            //}
            //else
            //{
            //    ip = Request.ServerVariables.Get("Remote_Addr").ToString().Trim();
            //}
            //str.Append("\r\n\tIp:" + ip);
            //str.Append("\r\n\t瀏覽器:" + Request.Browser.Browser.ToString());
            //str.Append("\r\n\t瀏覽器版本:" + Request.Browser.MajorVersion.ToString());
            //str.Append("\r\n\t操作系統:" + Request.Browser.Platform.ToString());
            //str.Append("\r\n.錯誤信息:");
            //str.Append("\r\n\t頁面:" + Request.Url.ToString());
            //str.Append("\r\n\t錯誤信息:" + ex.Message);
            //str.Append("\r\n\t錯誤源:" + ex.Source);
            //str.Append("\r\n\t異常方法:" + ex.TargetSite);
            //str.Append("\r\n\t堆棧信息:" + ex.StackTrace);
            //str.Append("\r\n--------------------------------------------------------------------------------------------------");
            ////創建路徑 
            //string upLoadPath = Server.MapPath("~/Logs/");
            //if (!System.IO.Directory.Exists(upLoadPath))
            //{
            //    System.IO.Directory.CreateDirectory(upLoadPath);
            //}
            ////創建文件 寫入錯誤 
            //System.IO.File.AppendAllText(upLoadPath + DateTime.Now.ToString("yyyy.MM.dd") + ".log", str.ToString(), System.Text.Encoding.UTF8);
            ////處理完及時清理異常 
            //Server.ClearError();
            ////跳轉至出錯頁面 
            //Response.Redirect("Error.html");
            #endregion
        }


        /// <summary>
        /// //每次請求時第一個出發的事件,這個方法第一個執行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_BeginRequest(object sender, EventArgs e)
        {
            var url =Request.Url.ToString();

        }

        /// <summary>
        ///在執行驗證前發生,這是創建驗證邏輯的起點
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_AuthenticateRequest(object sender, EventArgs e)
        {
           
        }

        /// <summary>
        /// 當安全模塊已經驗證了當前用戶的授權時執行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_AuthorizeRequest(object sender, EventArgs e)
        {
            
        }

        /// <summary>
        /// 當ASP.NET完成授權事件以使緩存模塊從緩存中爲請求提供服務時發生,從而跳過處理程序(頁面或者是WebService)的執行。
        ///這樣做可以改善網站的性能,這個事件還可以用來判斷正文是不是從Cache中得到的。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_ResolveRequestCache(object sender, EventArgs e)
        {
            
        }

        /// <summary>
        /// 讀取了Session所需的特定信息並且在把這些信息填充到Session之前執行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_AcquireRequestState(object sender, EventArgs e)
        {
           
        }

        /// <summary>
        /// 在合適的處理程序執行請求前調用
        ///這個時候,Session就可以用了
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_PreRequestHandlerExecute(object sender, EventArgs e)
        {
           
        }


        /// <summary>
        ///當處理程序完成對請求的處理後被調用。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_PostRequestHandlerExecute(object sender, EventArgs e)
        {
            
        }

        /// <summary>
        /// 釋放請求狀態
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_ReleaseRequestState(object sender, EventArgs e)
        {
           
        }

        /// <summary>
        /// 爲了後續的請求,更新響應緩存時被調用
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_UpdateRequestCache(object sender, EventArgs e)
        {
            
        }

        /// <summary>
        /// EndRequest是在響應Request時最後一個觸發的事件
        ///但在對象被釋放或者從新建立以前,適合在這個時候清理代碼
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_EndRequest(object sender, EventArgs e)
        {
            
        }

        /// <summary>
        /// 向客戶端發送Http標頭之前被調用
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_PreSendRequestHeaders(object sender, EventArgs e)
        {
            
        }

        /// <summary>
        /// 向客戶端發送Http正文之前被調用
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Application_PreSendRequestContent(object sender, EventArgs e)
        {
            
        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章