Azure功能无法识别云存储和队列类

时间:2018-07-06 14:45:54

标签: azure azure-storage azure-functions

我将遵循本指南https://docs.microsoft.com/en-us/azure/storage/queues/storage-dotnet-how-to-use-queues,并尝试在时间触发的函数中创建一个简单的队列。它无法识别CloudStorageAcount,CloudConfigurationManager,CloudQueueClient等。

这是我的run.csx文件

using Microsoft.Azure;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Queue;
using System;

public static void Run(TimerInfo myTimer, TraceWriter log) {   
    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    CloudConfigurationManager.GetSetting("StorageConnectionString"));

    // Retrieve storage account from connection string.
    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    CloudConfigurationManager.GetSetting("StorageConnectionString"));

    // Create the queue client.
    CloudQueueClient queueClient = 
    storageAccount.CreateCloudQueueClient();

    // Retrieve a reference to a container.
    CloudQueue queue = queueClient.GetQueueReference("myqueue");

    // Create the queue if it doesn't already exist
    queue.CreateIfNotExists();
}

这是我的project.json文件:

{
    "frameworks": {
        "net45":{
             "dependencies": {

                "Microsoft.WindowsAzure.ConfigurationManager" : "3.2.3",
                "Microsoft.WindowsAzure.Storage" : "8.0.0"
        },
         "frameworks": {
            "netcoreapp1.0": {
                "dependencies": {
                    "Microsoft.NETCore.App": {
                        "type": "platform",
                        "version": "1.0.0"
                    }
                },
            "imports": "dnxcore50"
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

默认情况下,Azure Functions本身引用了软件包Microsoft.WindowsAzure.Storage。删除整个project.json文件,并将此行添加到函数顶部:

#r "Microsoft.WindowsAzure.Storage"

但是您可能甚至不需要。 Azure函数具有用于存储队列的更高级别的API,用于发送(输出绑定)和接收(触发)。请参阅Azure Queue storage bindings for Azure Functions

另一个建议:最好使用预编译函数,这些预编译函数部署为使用Visual Studio或VS Code编译的类库。这样,管理依赖关系和进行故障排除要容易得多。