Azure函数BlobContainer.ListBlob在Portal CScript中可用,而在VS C#中不可用

时间:2018-09-26 11:17:41

标签: azure azure-storage azure-functions azure-storage-blobs

首先,我用门户网站开发了一些测试功能,在那里可以使用BlobContainer ListBlob上的功能。 现在我切换到VS2017来获取一些更复杂的代码,但是ListBlob不可用,它应该是ListBlobsSegmentedAsync。 但这是一种完全不友好的方法...我只是想了解为什么它可能在Portal中而不是在VS中出现...

1 个答案:

答案 0 :(得分:0)

这是由于在不同的Function运行时中使用的Storage SDK的差异造成的。

在Azure门户上,在“功能”应用程序设置中检查“运行时版本”,您可能会看到1.0.11959.0(〜1)。这意味着现在在门户网站上创建的代码以.NET Framework 4.7为目标。对于基于.NET Framework的Storage SDK,ListBlobs和ListBlobsSegmentedAsync在CloudBlobContainer上均有效。 enter image description here

在VS中转到本地开发人员,创建Azure Function时可能选择了v2。 v2 Functions以.NET Standard 2.0为目标,并在〜2 Function运行时(.NET Core 2)上运行。基于.NET Core的Storage SDK仅提供ListBlobsSegmentedAsync用于容器上的列表操作。

enter image description here

为保持一致,可以在VS中创建v1函数或在“函数”应用程序设置中更改函数运行时。请注意,如果您选择以后的版本,则需要先删除旧函数,因为它们会在不同的运行时中失效。