首先,我用门户网站开发了一些测试功能,在那里可以使用BlobContainer ListBlob上的功能。 现在我切换到VS2017来获取一些更复杂的代码,但是ListBlob不可用,它应该是ListBlobsSegmentedAsync。 但这是一种完全不友好的方法...我只是想了解为什么它可能在Portal中而不是在VS中出现...
答案 0 :(得分:0)
这是由于在不同的Function运行时中使用的Storage SDK的差异造成的。
在Azure门户上,在“功能”应用程序设置中检查“运行时版本”,您可能会看到1.0.11959.0(〜1)。这意味着现在在门户网站上创建的代码以.NET Framework 4.7为目标。对于基于.NET Framework的Storage SDK,ListBlobs和ListBlobsSegmentedAsync在CloudBlobContainer上均有效。
在VS中转到本地开发人员,创建Azure Function时可能选择了v2。 v2 Functions以.NET Standard 2.0为目标,并在〜2 Function运行时(.NET Core 2)上运行。基于.NET Core的Storage SDK仅提供ListBlobsSegmentedAsync用于容器上的列表操作。
为保持一致,可以在VS中创建v1函数或在“函数”应用程序设置中更改函数运行时。请注意,如果您选择以后的版本,则需要先删除旧函数,因为它们会在不同的运行时中失效。