Sounds good! Thanks for all the help!
Thanks for the information.
Kind of wish it didn't do any license check since that requires ASP.NET ZERO to stay in business and have this service available for the lifetime of our product which will hopefully be many, many, years from now. If your service goes away, and we do not upgrade to a newer version of ASP.NET ZERO (no plans to upgrade at this point), how will that impact our development and release process? If the license check fails, do we get a warning logged to the output like we are seeing or will things not work quite right or not at all? Ideally, since we have invested in using ASP.NET ZERO, we will not encounter problems developing if your service or company goes away in the future.
It appears to be working now and we do not get the error.
Can you provide some information on how the license checking works? I didn't know there was one even being performed, I thought it was just a license key that we had to include in our settings file. We may be deploying our product into locations that do not have internet access, etc. so how does this work for debug/release builds in those situations?
Thanks, Chuck
We started noticing this a day or so ago. I thought once we purchased this product we could optionally pay for yearly support/maintenance, but we could continue to use/develop/build/release the version we are using forever without having to pay each year. We have been paying yearly maintenance for support and upgrades, and are still in our previous contract period, and our license key has not been changed in source code. Any help would be appreciated.
Below is the exception details and I really do need to know how the licensing works for ASP.NET Zero. If it connects to a remote server, does it limit functionality somehow if it cannot get a license, etc. Also, how do we go about getting this resolved.
Abp.AbpException HResult=0x80131500 Message=Failed on license check Source=Abp.AspNetZeroCore StackTrace: at Abp.AspNetZeroCore.Licensing.AspNetZeroBaseLicenseChecker.<ValidateLicense>d__29.MoveNext()
Thanks, Chuck
We are not really doing anything all that strange. Basically, we are doing something similar to:
public async Task HttpPostService()
{
EntityImpl item = await repository.Get(id);
item.Text = "New text";
notificationPublisher.PublishAsync("EntityChanged",...);
}
After we started calling publish async, the LastModifierUserId is no longer set. LastModificationTime is set though. We found it strange that simply adding that one function call lead to this which is why we opened a question. If I add a call to SaveChanges before the publish all values are populated like before.
Hi,
I'm working on adding notifications to our application. All in all things are going fine but I've noticed some strange behaviour appearing.
I noticed that unless I manually call SaveChanges before publishing notifications some fields are no longer automatically set by ABP. These include TenantId, LastModfierUserId and most likely also CreatorUserId. After investigating a bit I found that this happens because the publish notification logic switches to a Host unit of work context and performs a SaveChanges. This leads to tenantId not being available.
I then found documentation stating that tenantId should be manually set which resolves that part of the problem. However, nothing is said regarding LastModifierUserId nor CreatorUserId as far as I can tell.
My question, therefore, is: Is it recommended to call SaveChanges before switching to a host unit of work in order to prevent problems like these?
Thank you
Thanks. Yea, the DbMigrator project is working but the issue is it only applies the migrations once per database. So with multiple tenants in a single DB I will need to find a way to add new entity instances for each tenant. So something like a foreach(tenant) addTenantSpecificData(); would have to be executed once for each DB after the migrations have been applied I guess.
I did notice several creator classes within Migrations.Seed.Tenants so maybe creating one of those would work? I assume those will get applied after the DB migrations so any schema changes will be applied. I could then go through each tenant in the DB being updated and add any/modify any custom data for them.
I am using v9.1.0, .NET Core and Angular.
We have a multi-tenant application that uses multiple databases with 1+ tenants per DB. We have a an EF model that must have a tenant and can contain many entries per tenant.
The problem is that we need some of the instances to be created by us while allowing other instances to be created by each tenant. The tenants will only see what we created for them and what they created themselves - they wont see what other tenants created.
For the instances that we create they will be exactly the same for every tenant. It will not be a different set of objects we create for each tenant and we will not be creating them manually for a specific tenant - they will be created when a new tenant is created or when we install a new release of our application.
What I am trying to figure out is a good way for us to create and add new entries that we want to control. So, for example, when a new tenant is created we want to create several entries for that tenant. Also, when we install an upgrade we may want to add more instances, or modify previous instances, so we need to go through all existing tenants and create/modify them.
I see where I can hook into the tenant creation process (TenantManger.CreateWithAdminUserAsync) so that should work for new tenants. But, when it comes to adding or changing data for existing tenants when we install a new version of our software I am at a loss. Migrations might be an option, but the default Migrator application only applies migrations once to a DB so for multiple tenants per DB it would not work.
Are there any built in mechanism for handling the creation/updating of tenant specific data when a new tenant is created or an upgrade is applied? Should I try to modify the Migrator application to have it update existing tenants with new data?
Any thoughts or suggestions on how best to do this would be appreciated.
Thanks!
Perfect!!
Thanks for the help!
Thanks for all the information marble68. If we are able to change the name ourselves in code then I wont be as worried about the name we select. If we cannot due to licensing, etc. then we will have to be sure on the name.
Any chance I can get confirmation from support on this?