Activities of "steve.burgess"

hi

The KeyPrefix of AbpDistributedCacheOptions has been set in all template projects, including the microservice template.

So also recommend you to do this.

Thanks for checking. My question was more around the need for having the colon character : at the end of the prefix. Is the colon required?

Cheers,

Steve.

OK, so tracing this through the system and looking in REDIS the reason why it's not clearing the cache is because it's attempting to remove the wrong key.

With the redis-cli monitor command you can see that it's running the unlink command and passing it the key c:AbpExternalLocalizationTexts,k:TimeTrackerTimeTrackerService:en

However, the key in redis is c:AbpExternalLocalizationTexts,k:TimeTracker:TimeTrackerService:en (note the colon between TimeTracker and TimeTrackerService

It's worth noting that as far as i can tell all the other commands that involve keys being passed to REDIS correctly have a colon between TimeTracker and TimeTrackerService. An example of this is below

Any ideas?

Cheers,

Steve.

I think I've found the answer to this.

If we look in the distributed cache class we can see that the cache key is being constructed via the NormalizeKey method that calls KeyNormalizer.NormalizeKey which is method on an injected IDistributedCacheKeyNormalizer

https://github.com/abpframework/abp/blob/9d2902b335ca089be6ae07242d4470472de39cf5/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs

Looking at DistributedCacheKeyNormalizer we can see that when it constructs the key it doesn't include a colon

https://github.com/abpframework/abp/blob/e3e1779de6df5d26f01cdc8e99ac9cbcb3d24d3c/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCacheKeyNormalizer.cs

I ignored this initially because the system seemed to be correctly pulling keys from REDIS without issue.

However, after some more investigation it looks like all the "templates" for various project types in include a colon when setting KeyPrefix on the AbpDistributedCacheOptions. I added a colon to my KeyPrefix and it all appears to be working correctly now.

Is what i found correct? Or am i missing something?

Cheers,

Steve.

OK, so tracing this through the system and looking in REDIS the reason why it's not clearing the cache is because it's attempting to remove the wrong key.

With the redis-cli monitor command you can see that it's running the unlink command and passing it the key c:AbpExternalLocalizationTexts,k:TimeTrackerTimeTrackerService:en

However, the key in redis is c:AbpExternalLocalizationTexts,k:TimeTracker:TimeTrackerService:en (note the colon between TimeTracker and TimeTrackerService

It's worth noting that as far as i can tell all the other commands that involve keys being passed to REDIS correctly have a colon between TimeTracker and TimeTrackerService. An example of this is below

Any ideas?

Cheers,

Steve.

hi

Awesome, thanks.

Steve.

Hi,

Ok, sounds like it's something with my setup then. Can you let me know what module the code is in? That way i can pull the source code and debug the issue to see what's happening.

Cheers,

Steve.

Hi,

I'm not changing anything in the database.

The database is being updated with the update localisations via one of the ABP packages.

All i do is update the en.json file in domain.shared.localizations.service directory and then start the microservices. This then gets automatically added to the AbpLocalizationTexts table in the admin service somehow (not via any of my code).

Cheers,

Steve.

hi

You can clear the redis and try again.

Hi,

That will fix it yes.

But should it not be updating the cache when it updates the values in the database?

I don't really want to be wiping my entire redis cache every time i do a deployment that contains a translation update.

Cheers,

Steve.

  • ABP Framework version: v7.0.1
  • UI type: Angularr
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

Hi,

I'm currently using the microservice template.

After upgrading to version 7, updates to the translation files are not appearing in the application.

After updating the translation file and starting the application i can see the new changes correctly being added to the AbpLocalizationTexts table. However, when you start the application and it fetches the localizations from "api/abp/application-localization?cultureName=en&onlyDynamics=false" it returns the old version of the file.

Looking in redis it doesn't look like the cache has been updated with the new values.

Am i missing something? Is there something new i need to be doing in v7?

Thanks,

Steve.

Hello,

Yes, gateways in microservice template locates the re-routing services and add them as swagger definitions. Currently, we are trying to find a way to cover this scenario better, where microservices do not expose any swagger ui but the gateway exposes the swagger ui with all the endpoints it re-routes to.

However the solution will most likely differ based on the gateway library.

Currently, you can alter the gateway swagger ui manually.

OK thanks,

Steve.

  • ABP Framework version: v7.0.1
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

Hi, I'm currently using the microservice template for one of my projects. I had quick question about swagger and the Web Gateway.

The diagram at the top of this page (https://docs.abp.io/en/commercial/latest/startup-templates/microservice/gateways) show the web applications (in my case Angular) connecting to the services through the Web Gateway.

In my Openshift configuration im planning on setting it so the services are only accessible via the Web Gateway as this seems to make sense.

However, this looks like it will break the swagger page on the Web Gateway. As far as i can tell when selecting an option from the top right drop down on the Web Gateway swagger page your browser will attempt to contact the selected service and pull down its swagger definition. This obviously fails if you have restricted access to the service to be just through the Web Gateway.

Am i misunderstanding something or is this how it's meant to be?

Thanks,

Steve.

Showing 1 to 10 of 29 entries
Made with ❤️ on ABP v8.3.0-preview Updated on July 04, 2024, 07:07