我们正在使用.net core 3创建Azure函数,并在本地运行正常,大多数情况下,在部署到Azure时也可以正常运行,但是,从Visual Studio部署之后,我们会随机出现此错误显示在Azure门户中:
函数运行时无法启动。找不到方法:“ Microsoft.Extensions.Configuration.IConfigurationBuilder Microsoft.Extensions.Configuration.FileConfigurationExtensions.SetBasePath(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String)”。
我们不知道确切地解决该错误的方法,但是在VS中创建一个新的Function项目,然后粘贴代码可以解决此问题,但这显然不是很方便。
我们在Startup类中使用这样的DI:
var currentDirectory = "/home/site/wwwroot";
var isLocal = string.IsNullOrEmpty(Environment.GetEnvironmentVariable("WEBSITE_INSTANCE_ID"));
if (isLocal)
{
currentDirectory = Environment.CurrentDirectory;
}
var config = new ConfigurationBuilder()
.SetBasePath(currentDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
在本地以及大多数情况下,在部署到Azure时,效果都很好。
可以通过重新部署之前使用的完全相同的代码来触发该错误,因此很难进行故障排除。
关于如何解决此问题的任何想法?