Imports System.Web.SessionState

Public Class Global_asax
    Inherits System.Web.HttpApplication

    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' アプリケーションの起動時に呼び出されます。
    End Sub

    Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' セッションの開始時に呼び出されます。

        ' セッション開始時にシステムMの値をキャッシュする
        MyProperty.システムＭ.FillシステムMDataTable()
    End Sub

    Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
        ' 各要求の開始時に呼び出されます。

        If IsNothing(MyProperty.LOGフォルダパス) Then
            MyProperty.LOGフォルダパス = Request.PhysicalApplicationPath + "logs\"
        End If

        If IsNothing(MyProperty.EXCELテンプレートフォルダパス) Then
            MyProperty.EXCELテンプレートフォルダパス = Request.PhysicalApplicationPath + "Template\"
        End If

        If IsNothing(MyProperty.TEMPフォルダパス) Then
            MyProperty.TEMPフォルダパス = Request.PhysicalApplicationPath + "temp\"
        End If

        ' 毎リクエストにアクセスログをとる
        MyLog.AddAccessLog(Request, Application)
    End Sub

    Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
        ' 使用の認証時に呼び出されます。
    End Sub

    Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
        ' エラーの発生時に呼び出されます。

        ' 最後に発生したエラーの原因情報を取得
        Dim ex As Exception = Nothing

        ' InnerExceptionを取得
        ex = Server.GetLastError().InnerException
        If Not IsNothing(ex) Then
            MyLog.AddErrorLog(ex, Application)
        Else
            ' Exceptionを取得
            ex = Server.GetLastError()
            If Not IsNothing(ex) Then
                If Not ex.Message = "ファイルが存在しません。" Then
                    MyLog.AddErrorLog(ex, Application)
                End If
            End If
        End If

    End Sub

    Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
        ' セッションの終了時に呼び出されます。
    End Sub

    Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
        ' アプリケーションの終了時に呼び出されます。
    End Sub

End Class