DNN API Controller - A task was canceled Log

Viewed 48

We have an JQuery Ajax call that will execute when a user is about to leave a page on a DNN module.

This error is being logged the whole time in the DNN logs. How can I improve the error handling so that it doesn't log the whole time?

Here is the DNN log: enter image description here

Here is the Front End Code on the Module :

$(window).on("beforeunload", function () {
    ClearTempUserSessionWhenLeavePage();
});


function ClearTempUserSessionWhenLeavePage() {

    if ($fromButtonEvent == false) {
        var Url = $.fn.GetBaseURL() + 'DesktopModules/DNNCommon/API/Store/ClearTempUserSessionWhenLeavePage';

        $.ajax({
            url: Url,
            type: 'GET',
            async: true,
            dataType: 'json',
            success: function () {

            },
            error: function (x, y, z) {

            }
        }).promise().done(function () {

        });
    }

    $fromButtonEvent = false;
}

We are inheriting the DNNApiController class on our DNNCommon class. enter image description here

This is the C# method being called:

[AllowAnonymous]
[HttpGet]
public void ClearTempUserSessionWhenLeavePage()
{
 
    if (SessionManager.GetSessionObject("NewCreatedWebUser") != null)
    {
        System.Web.HttpContext.Current.Session["DoNotRemoveSessionIfNotAuthenticated"] = false;
        SessionManager.SetSessionObject("NewCreatedWebUser", null);
        SessionManager.SetSessionObject("UserInfo", null);
        SessionManager.SetSessionObject("NewCustomerCode", null);
    }
}

I have attempted to add two different types of Try Catch clauses, but when I debug the code it won't hit the breakpoints and somehow it still logs the error in the DNN Admin logs. Is there perhaps a Try Catch in the DNNController class that is writing this error?

First attempt with Try Catch Clause with TaskCanceledException and TimeoutException:

[AllowAnonymous]
[HttpGet]
public void ClearTempUserSessionWhenLeavePage()
{
      try
        {
            if (SessionManager.GetSessionObject("NewCreatedWebUser") != null)
            {
                System.Web.HttpContext.Current.Session["DoNotRemoveSessionIfNotAuthenticated"] = false;
                SessionManager.SetSessionObject("NewCreatedWebUser", null);
                SessionManager.SetSessionObject("UserInfo", null);
                SessionManager.SetSessionObject("NewCustomerCode", null);
            }
        
        }     
        catch (Exception ex)
        {
            EventLogController logController = new EventLogController();

            if (ex.InnerException is TimeoutException)
            {
                ex = ex.InnerException;
            }
            else if (ex is TaskCanceledException)
            {
                if ((ex as TaskCanceledException).CancellationToken == null || (ex as TaskCanceledException).CancellationToken.IsCancellationRequested == false)
                {
                    ex = new TimeoutException("Timeout occurred");
                    logController.AddLog("Timout Occured - Clearing Temp User Session When Leave Page.", ex.ToString(), EventLogController.EventLogType.ADMIN_ALERT);
                }
          }
         logController.AddLog("Problem Clearing Temp User Session When Leave Page.", ex.ToString(), EventLogController.EventLogType.ADMIN_ALERT);
 }
}

Second attempt with a TaskCanceledException:

    [AllowAnonymous]
    [HttpGet]
    public void ClearTempUserSessionWhenLeavePage()
    {
        try
        {
            if (SessionManager.GetSessionObject("NewCreatedWebUser") != null)
            {
                System.Web.HttpContext.Current.Session["DoNotRemoveSessionIfNotAuthenticated"] = false;
                SessionManager.SetSessionObject("NewCreatedWebUser", null);
                SessionManager.SetSessionObject("UserInfo", null);
                SessionManager.SetSessionObject("NewCustomerCode", null);
            }
        
        }
        catch (TaskCanceledException ex)
        {
            EventLogController logController = new EventLogController();
            logController.AddLog("Task Cancelled Exception - Clearing Temp User Session When Leave Page.", ex.ToString(), EventLogController.EventLogType.ADMIN_ALERT);
        }
    }
0 Answers
Related