Base solution for your next web application

Activities of "AidanCostcoAU"

In WebConsts changed: HangfireDashboardEnabled = true;

We have also added some additional job queues in startup.cs, but otherwise using existing code

if (WebConsts.HangfireDashboardEnabled)
        {
            //Hangfire dashboard &server(Enable to use Hangfire instead of default job manager)
            app.UseHangfireDashboard(WebConsts.HangfireDashboardEndPoint, new DashboardOptions
            {
                Authorization = new[] { new AbpHangfireAuthorizationFilter(AppPermissions.Pages_Administration_HangfireDashboard) }
            });
            //axg add our own job queues by setting custom options
            var options = new BackgroundJobServerOptions
            {
                Queues = new [] {"acereporting","fuelreporting", "fuel", "default"}
            };
            app.UseHangfireServer(options);
        }
        

In prod we are on 6.8, but I get the same results testing with 7.3.1

We have been running our applications (core with angular) on IIS webfarms (with Redis cache), with round robin request routing. From an angular app this has been fine, however we started using Hangfire, and regularly need to access the /ui portal into that. We have found that this does not play well with the webfarm as we want to use it. With the current request routing, it is near impossible to authenticate and reach the underlying /ui sites. Right now, we have converted to client affinity which allows the /ui to work, but defeats the intention of our load balancing. I suspect the /ui authentication path is using data which is not kept in the shared cache (redis), so underlying links are not authenicated when requests cross servers. Any guidance to fix (or an actual fix) would be helpfull. thanks

@peopleteq How did you end up handling this? I have a similar issue.

We are interested in using HangfirePro with the framework (rather than the free version). Haven't tried anything yet, but interested to know if anyone else has gone down this path? Maybe an expansion to the Abp.Hangfire interface?

thanks for that We haven't seen that particular error (yet), but will follow your changes to be safe.

Looking at our checkin history the change to the base AppServiceClass MainTemplate.txt appeared around July.

It looks like GetAll and Get....ToExcel have similar changes

This is how a snippet of code looks in our custom 6.8 GetAll server code looks today (which uses ObjectMapper):

    var results = (from o in selectedGIFuelTransactionTrackings
                     select new GetGIFuelTransactionTrackingForViewDto() { GIFuelTransactionTracking = ObjectMapper.Map<GIFuelTransactionTrackingDto>(o)
					 
					 })
          

This is a similar part of the code generated in 7.2.2, which shows the field by field mapping:

var giFuelTransactionTrackings = from o in pagedAndFilteredGIFuelTransactionTrackings
                     select new GetGIFuelTransactionTrackingForViewDto() {
						GIFuelTransactionTracking = new GIFuelTransactionTrackingDto
						{
                            SourceTran = o.SourceTran,
                            Location = o.Location,
                            ValidationStatus = o.ValidationStatus,
                            TranSeqStatus = o.TranSeqStatus,
                            FCCSeqStatus = o.FCCSeqStatus,
                            PreAuthAmtStatus = o.PreAuthAmtStatus,
                            STANStatus = o.STANStatus,
                            SiteIdStatus = o.SiteIdStatus,
                            PumpStatus = o.PumpStatus,
                            HoseStatus = o.HoseStatus,
                            GradeStatus = o.GradeStatus,
                            PriceStatus = o.PriceStatus,
                            VolumeStatus = o.VolumeStatus,
                            SaleAmtStatus = o.SaleAmtStatus,
                            SaleMathStatus = o.SaleMathStatus,
                            MemberIdStatus = o.MemberIdStatus,
                            PANStatus = o.PANStatus,
                            Annotation = o.Annotation,
                            Updated = o.Updated,
                            FuelSystemType = o.FuelSystemType,
                            Id = o.Id
						}
					};                         
     
     

Just starting a migration to 7.7.2, and looking at our custom RAD tool template merges, and noticed the change in usage of the ObjectMapper. Interested in the reason for the change, so we can decide whether we will follow this in our custom template.

OK. i'll do that.

I think you are on the right track with your comment on 1538.

As I see it now, if a token holder calls Logout, then related entries in this table are cleared, but the entries are left behind whenever connections are simply terminated.

Please correct me if I am wrong, but it should be safe to schedule a data maintenance task to remove any records referring to tokens which have clearly expired?

Showing 1 to 10 of 14 entries