在ASP.Net 5中配置Azure Blob访问

时间:2016-08-25 23:18:06

标签: c# azure asp.net-core azure-storage

我在Visual Studio 2015中创建了一个ASP.Net 5 WebAPI应用程序,我需要使用Azure Blob。

要使用官方文档https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/中的Azure blob,您需要在<appSettings />app.config文件中放置一个键值对,如下所示:

web.config

但问题是如果您使用的是ASP.Net 5,则没有名为<appSettings> <add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=account-name;AccountKey=account-key" /> </appSettings> app.config的文件。

所以,如果我正在使用ASP.Net 5,我应该在哪里放置web.config

2 个答案:

答案 0 :(得分:2)

ASP.NET Core提供了各种不同的配置选项。应用程序配置数据可能来自文件(例如JSON,XML等),环境变量,内存中集合等。

它适用于选项模型,因此您可以将强类型设置注入应用程序。您还可以创建自定义配置提供程序,这可以为您带来更多的灵活性和可扩展性。

根据您的要求,您可以按照以下步骤实现目标:

在appsetting.json中创建名为AzureStorageConfig的部分:

"AzureStorageConfig": {
  "AccountName": "<yourStorageAccountName>",
  "AccountKey": "<yourStorageAccountKey>"
}

像这样创建一个名为AzureStorageConfig的类:

public class AzureStorageConfig
{
    public string AccountName { get; set; }
    public string AccountKey { get; set; }
}

然后在Startup.cs中配置服务,如下所示:

public void ConfigureServices(IServiceCollection services)
{   
    // Add framework services.
    services.AddMvc();
    // Setup options with DI
    services.AddOptions();
    services.Configure<AzureStorageConfig>(Configuration.GetSection("AzureStorageConfig"));
}

然后通过以下控制器访问它:

private AzureStorageConfig _storageConfig;
public HomeController(IOptions<AzureStorageConfig> config)
{
    _storageConfig = config.Value;
}

有关详细信息,请参阅此Tutorial

答案 1 :(得分:0)

解决方案很简单。您不必经历他们的官方教程中提到的繁琐/荒谬的步骤。

var storageAccount = new CloudStorageAccount(
    new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(
        "{account_name}", 
        "key"), true);

我不知道为什么微软会尽力使人们的生活复杂化。