在初次调试Azure Functions时,可能会遇到如下错误:
Value cannot be null. (Parameter 'provider')
或者 connect Econnrefused 127.0.0.1:9091
此问题初步判断为网络异常导致了文件下载失败,可以开启更多调试日志查看是否为文件下载失败导致的,可以打开更多日志查看是否是文件下载故障:
步骤:
在VS Code中修改.vscode\launch.json和tasks.json文件中的启动命令
在launch.json和tasks.json中的 host start 后增加 --verbose 参数:
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Python Functions",
"type": "python",
"request": "attach",
"port": 9091,
"preLaunchTask": "func: host start --verbose"
}
]
}
{
"version": "2.0.0",
"tasks": [
{
"type": "func",
"command": "host start --verbose",
"problemMatcher": "$func-python-watch",
"isBackground": true
}
]
}
开启更多日志之前:
开启更多日志之后,会显示更多的日志信息:
对于 Java、JavaScript、PowerShell、Python 和自定义处理程序函数应用,我们建议使用扩展捆绑来访问绑定。此方案由vs code 自动根据host.json 中的 extensionBundle 中的内容自动下载扩展包。
如果下载失败,就会报错:Value cannot be null. (Parameter 'provider')
此时可以手动安装扩展包,可以参照官网 https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-bindings-register#extension-bundles
进行处理,最简单的方式是科学上网,即可下载host.json 中的 extensionBundle 中的内容。
如果无法科学上网,
则可以尝试手动安装所有扩展(根据经验,此手动下载方案比使用 VS Code里的host.json的extensionBundle 自动下载扩展包的源是不同的,手动做法可能更容易成功):
.Net Core CLI 执行:
func extensions install
或者手动安装指定扩展包:
.Net Core CLI 执行:
func extensions install --package Microsoft.Azure.WebJobs.Extensions.Storage --version 4.0.2