It is configured in the WebModule. It appears that it needs this configuration somewhere in tests in order to work. Where should that go?
Hi,
DbMigrator and Web are two applications, you should to configuration it in the DbMigrator project too.
Hi,
It is only used for the local development environment: https://docs.abp.io/en/abp/latest/Virtual-File-System#dealing-with-embedded-files-during-development
You can try to start the container with another environment(Production etc.).
Or you can add an option to appsettings
{
"IsOnDocker": "false",
}
if (hostingEnvironment.IsDevelopment() && !Convert.ToBoolean(configuration["IsOnDocker"]))
{
Configure<AbpVirtualFileSystemOptions>(options =>
{
......
});
}
services:
dnf.httpapi.host:
image: ${DOCKER_REGISTRY-}dnfhttpapihost
container_name: dnf.httpapi.host
ports:
- "44326:44326"
- "4200:4200"
- "30080:80"
- "30443:443"
build:
context: .
dockerfile: src/DNF.HttpApi.Host/Dockerfile
depends_on:
- dnf.db
restart: on-failure
environment:
IsOnDocker: "true"
HI,
1.
This is by ABP design https://github.com/abpframework/abp/blob/2c37e56751a3ff9a7e4c0cd44541e6a1a33f031d/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditPropertySetter.cs#L127-L134
You can create your own AuditPropertySetter
to replace the default implement, for example:
[ExposeServices(typeof(IAuditPropertySetter))]
[Dependency(ReplaceServices = true)]
public class MyAuditPropertySetter: AuditPropertySetter
{
protected override void SetLastModifierId(object targetObject)
{
if (!(targetObject is IModificationAuditedObject modificationAuditedObject))
{
return;
}
if (!CurrentUser.Id.HasValue)
{
ObjectHelper.TrySetProperty(modificationAuditedObject, x => x.LastModifierId, () => null);
return;
}
// if (modificationAuditedObject is IMultiTenant multiTenantEntity)
// {
// if (multiTenantEntity.TenantId != CurrentUser.TenantId)
// {
// ObjectHelper.TrySetProperty(modificationAuditedObject, x => x.LastModifierId, () => null);
// return;
// }
// }
ObjectHelper.TrySetProperty(modificationAuditedObject, x => x.LastModifierId, () => CurrentUser.Id);
}
}
We use the NullEmailSender in the debug mode, you can remove it
and we have an example to check email configure: https://github.com/abpframework/abp-samples/tree/master/EmailSendDemo
Hi,
The code seems no problem, I think maybe there is some other problem. Could you share a minimal reproducible project with me? thanks. shiwei.liang@volosoft.com
No BLOB Storage provider was registered! At least one provider must be registered to be able to use the BLOB Storing System.
Hi,
You need to configure a BLOB Storage provider: https://docs.abp.io/en/abp/latest/Blob-Storing#blob-storage-providers
Hi,
Sorry, the Eventbus system supports the such case.
I think you don't need to do this, ABP uses routing key to binding messages. you can define ETOs in a shared project and make sure every application references it.
Every application should use the same exchange name
You can see an example of this in the microservice template:
Hi,
Can you explain it in detail? thanks.
Hi,
ABP provided options that you can use it to change the exchange type:
https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/AbpRabbitMqEventBusOptions.cs#L15
Hi,
Seems it's a problem with Blazorise, you can open an issue on the Blazorise repo: https://github.com/Megabit/Blazorise/issues
Hi,
Because the project you provided can't build, I made an example for you.
You are trying to add chat to a QaService, it needs more configuration:
You can check the example my shared, in this example, I added Chat to ProductService
Add Volo.Abp.Identity.Pro.HttpApi.Client
and IdentityService.Application.Contracts
to HttpApi.Host project
Configure RemoteServices
"RemoteServices": {
"AbpIdentity": {
"BaseUrl": "https://localhost:44325/",
"UseCurrentAccessToken": "false"
}
},
"IdentityClients": {
"Default": {
"GrantType": "client_credentials",
"ClientId": "Qa_AdministrationService",
"ClientSecret": "1q2w3e*",
"Authority": "https://localhost:44322",
"Scope": "IdentityService"
}
},
```