Azure功能:在应用程序的预启动初始化阶段,无法调用此方法

时间:2018-01-23 09:54:05

标签: unity-container azure-functions

我已经创建了一个Azure函数并创建了一个类,该类使用IExtensionConfigProvider方法实现Initialize接口,以便在“启动”时进行“引导”操作。 bootstapping中包含一些Unity注册,我使用BuildManager.GetReferencedAssemblies()来完成约定注册。

但是,调用This method cannot be called during the application's pre-start initialization phase时出现BuildManager.GetReferencedAssemblies()错误。我甚至把这个方法放在实际的功能代码中(所以不要“启动”)并且仍然会出现这个错误。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

听起来你正在尝试做一些不受支持的事情。 IExtensionConfigProvider.Initialize()是一个非常受保护的上下文,你无法控制它何时运行 - 它应该只用于注册绑定规则。 Azure Functions还没有依赖注入支持。

  1. 如果您想要提前运行代码,可以将其放在静态构造函数中。
  2. 如果您想要更多控制权,可以切换到使用底层WebJobs SDK(允许您拥有主要功能)。功能分层在WebJobs SDK之上。