Managing web.config appSettings
Integer.TryParse will overwrite the value of that shared property with 0 if the value is not there. Use something like this instead:

Shared Sub New()
    Dim parsed As Integer
    If Integer.TryParse(ConfigurationManager.AppSettings("ReportRequestMaxExecuteAttempt"), parsed) Then
        _ReportRequestMaxExecuteAttemptDefault = parsed
    End If
End Sub