我创建了一些 Azure Functions 项目。我将它们全部部署在一个 zip 文件中。我对接口(interface)进行了不同的初始化,我将其注册为不同 Azure Functions 中 DI 的单例。
我面临的问题是,只有第一个(.TryAddSingleton
)对象才被注册。这是一个问题,因为独立的 Azure Function 似乎不是孤立的,并且使用在不同的 Azure Function 项目中注册的对象。
这种行为是故意的吗?
我能想到的唯一原因是内存使用的某种优化,尽管如此,我真的很高兴能够严格划分每个函数的 DI 上下文。这可能吗?
最佳答案
这些函数在同一实例(VM)上运行,并且单例服务在同一实例上的函数执行之间重用。这就是为什么他们并不孤立。
解决方法是使用不同的 hosting plan对于功能。
关于azure - 依赖注入(inject)容器是否在同一个包中的 azure 函数之间共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62154844/