簡體   English   中英

將Azure Blob與Azure網站連接

[英]Connecting Azure Blob with Azure Website

我正在嘗試將Azure網站連接到Azure blob(我打算在容器中托管一些文件,然后從我的網站上獲取它們)。

我從這個教程開始: http//azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-get-started/

我部署了我的網站,然后開始學習本教程: http//azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/#setup-connection-string

由於我使用的是Azure網站,因此我將以下代碼添加到了我的web.config文件中(在WebApplication1項目下)。 Views文件夾下還有一個web.config文件,但我沒有修改它。

 <configuration>
    <appSettings>
       <add key="StorageConnectionString" 
            value="DefaultEndpointsProtocol=https;AccountName=account-name;AccountKey=account-key" />
    </appSettings>
 </configuration>

我按照教程中的所有步驟安裝了相關的NuGet包,然后將這些命名空間包含在我的Controllers/HomeController.cs文件中:

using System.Configuration;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;

然后我在ActionResult Index()方法中添加了以下語句(默認情況下運行)。

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);

當我嘗試運行解決方案時,我現在收到此錯誤:

在此輸入圖像描述

我還嘗試直接放入StorageConnectionString的值(使用我的帳戶名和密鑰),而不是在以下語句中引用它:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["DefaultEndpointsProtocol=https;AccountName=account-name;AccountKey=account-key"].ConnectionString);

我仍然得到同樣的錯誤。 我似乎無法在互聯網上找到任何東西。 有任何想法嗎?

謝謝!

您的代碼中存在根本性錯誤。

首先設置AppSetting:

 <configuration>
    <appSettings>
       <add key="StorageConnectionString" 
            value="DefaultEndpointsProtocol=https;AccountName=account-   name;AccountKey=account-key" />
    </appSettings>
 </configuration>

然后你嘗試獲取連接字符串:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);

這根本行不通。 設置AppSetting時,您需要閱讀AppSetting。 設置ConnectionString時,需要讀取連接字符串。

因此,解決方案只是將web.config保持原樣,並將存儲帳戶所在的行更改為:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);

或者保留連接字符串的行,但將web.config更改為:

 <configuration>
    <connectionStrings>
       <add name="StorageConnectionString" 
            connectionString="DefaultEndpointsProtocol=https;AccountName=account-   name;AccountKey=account-key" providerName="System.Data.SqlClient" />
    </connectionStrings>
 </configuration>

當然,您必須為雲存儲帳戶和存儲帳戶密鑰設置您的真實值( account-name將永遠不會起作用)。

這是來自Azure的更糟糕的文檔,文章確實告訴您創建AppSetting然后代碼告訴您檢索ConnectionString。

另一種解決方法是將詳細信息存儲為ConnectionString,並保留代碼:

<add name="StorageConnectionString" connectionString="DefaultEndpointsProtocol=https;AccountName=your-account;AccountKey=your-key" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM