@maliming, not it is clear. As you said problem is MyTypeActivatorCache
. Now I removed it and I am creating controller every time. Here is the latest controller activator:
public class DaisyControllerActivator : IControllerActivator
{
private readonly ServiceBasedControllerActivator _serviceBasedControllerActivator;
public DaisyControllerActivator(ServiceBasedControllerActivator serviceBasedControllerActivator)
{
_serviceBasedControllerActivator = serviceBasedControllerActivator;
}
public object Create(ControllerContext context)
{
try
{
return _serviceBasedControllerActivator.Create(context);
}
catch (Exception ex)
{
// Create controller if not found.
return ActivatorUtilities.CreateInstance(context.HttpContext.RequestServices, context.ActionDescriptor.ControllerTypeInfo.AsType());
}
}
public void Release(ControllerContext context, object controller)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
if (controller == null)
{
throw new ArgumentNullException(nameof(controller));
}
_serviceBasedControllerActivator.Release(context, controller);
}
}
Thanks a lot for your patient/help.
Actually I shared all the code I have in the question.
Okay it is working now. Could give more detailed explanation about this?
Also, what is the best practice, should I always use IRootServiceProvider
instead of IServiceProvider
?
Hi @liangshiwei, this is the good point. This fixes my issue.
Thanks a lot.
Hi @maliming another silly mistake :) I did not check after Rider created auto-generated code.
Thanks.
Hi @maliming, I removed blobStoring from project. We will no longer use this.
Thanks for your helping and your time.
Hi @maliming I can't understand what you mean. I have no connection issues, actually. Each microservice can connect to its own DB via repos without issue. The problem is blobProvider is bypassing fileManagerConnectionString by administration-service. Repositories that are in blobProvider is connecting the administration service DB.
I think I should configure blobStoringProvider to connect file-manager-service DB, but I can't find any solution about this.
BTW, here is my connections:
It worked. Thanks @maliming.
Hi @liangshiwei, actually I am extending/overriding the end-point in identity-service microservice itself. And it is different then yours.
But yes it doesn't matter. I got your your point. I just ask for better way. Using RestService can be solution. Now, I created a library for identity and generated proxies in it.
I just have concerns about using it this way, if there are drawbacks.
Hi @muhammedaltug, your advice worked for me. It should be in Microservice documentation.