diff --git a/dotnet/src/dotnetframework/GxClasses/Middleware/GXHttp.cs b/dotnet/src/dotnetframework/GxClasses/Middleware/GXHttp.cs index c9bc1b152..bb0987708 100644 --- a/dotnet/src/dotnetframework/GxClasses/Middleware/GXHttp.cs +++ b/dotnet/src/dotnetframework/GxClasses/Middleware/GXHttp.cs @@ -1322,8 +1322,7 @@ public string StaticContentBase set { staticContentBase = value; } } - - protected void exitApplication() + protected void ExitApp() { if (disconnectUserAtCleanup) { @@ -1333,7 +1332,11 @@ protected void exitApplication() } catch (Exception) {; } } + } + protected void exitApplication() + { + ExitApp(); } private bool IsGxAjaxRequest() diff --git a/dotnet/src/dotnetframework/GxClasses/Model/gxproc.cs b/dotnet/src/dotnetframework/GxClasses/Model/gxproc.cs index 6f1169c8d..286836a69 100644 --- a/dotnet/src/dotnetframework/GxClasses/Model/gxproc.cs +++ b/dotnet/src/dotnetframework/GxClasses/Model/gxproc.cs @@ -80,10 +80,21 @@ public static WaitCallback PropagateCulture(WaitCallback action) action(x); }; } + protected void ExitApp() + { + exitApplication(BatchCursorHolder()); + } protected void exitApplication() { - foreach (IGxDataStore ds in context.DataStores) - ds.Connection.FlushBatchCursors(this); + exitApplication(true); + } + private void exitApplication(bool flushBatchCursor) + { + if (flushBatchCursor) + { + foreach (IGxDataStore ds in context.DataStores) + ds.Connection.FlushBatchCursors(this); + } if (IsMain) dbgInfo?.OnExit(); @@ -103,7 +114,7 @@ protected void exitApplication() #endif } - + protected virtual bool BatchCursorHolder() { return false; } protected virtual void printHeaders(){} protected virtual void printFooters(){}