OWIN cannot run multiple apps in isolation using webapp.start

冷暖自知 提交于 2019-12-03 16:00:05

Based on your last comment, an example below to filter out the assemblies:

config.Services.Replace(typeof(IAssembliesResolver), new CustomAssembliesResolver());

public class CustomAssembliesResolver : DefaultAssembliesResolver
{
    public override ICollection<Assembly> GetAssemblies()
    {
        ICollection<Assembly> defaultProbedAssemblies = base.GetAssemblies();

        //TODO: filter out the assemblies that you do not want to be probed

        return defaultProbedAssemblies;
    }
}

I had the exact same issue and @KiranChalla's answer got me going down the right path (thanks!). The problem was indeed with the assembly scanning going deeper than I wanted it to. For me I always wanted the scan to only include the assembly where the "current" Startup is defined, as that is the Web API project where all relevant controllers live. I created a resolver that always returns just one assembly:

public class SingleAssemblyResolver : IAssembliesResolver
{
    private readonly Assembly _ass;

    public SingleAssemblyResolver(Assembly ass) {
        _ass = ass;
    }

    public ICollection<Assembly> GetAssemblies() {
        return new[] { _ass };
    }
}

And told it which assembly ("this" one) when registering it in each Startup:

config.Services.Replace(typeof(IAssembliesResolver),
    new SingleAssemblyResolver(this.GetType().Assembly));
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!