[英]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.