[英]An exception of type 'System.InvalidOperationException' occurred in System.Web.dll but was not handled in user code
[英]An exception of type 'System.ArgumentNullException' occurred in Microsoft.WindowsAzure.Storage.dll but was not handled in user code
我正在嘗試連接到Azure媒體存儲以上傳文件,但是每次嘗試上傳文件時都會收到錯誤消息。
錯誤出現在代碼的以下部分:
var container = CloudStorageAccount.Parse(
ConfigurationManager.AppSettings["StorageConnectionString"]).CreateCloudBlobClient()
.GetContainerReference(ConfigurationManager.AppSettings["StorageContainerReference"]);
應用程序設置如下:
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=mediasvczfpr6c9dg9jx2;AccountKey=+DlbXTjZG7bni9LOKaYOxqsxBxXVmzh7BpPzWByBi/Csl9XZ+VRcqMbZxuwcbDIg88o73+6M9ByVLwsHNNyLKQ==" />
<add key="CloudStorageContainerReference" value="temporary-media" />
<add key="StorageAccountKey" value ="+DlbXTjZG7bni9LOKaYOxqsxBxXVmzh7BpPzWByBi/Csl9XZ+VRcqMbZxuwcbDIg88o73+6M9ByVLwsHNNyLKQ==" />
<add key="StorageAccountName" value="mediasvczfpr6c9dg9jx2" />
<add key="MediaAccountName" value="azurevideoportal" />
<add key="MediaAccountKey" value="T2yMBqN0mk2O//cX+5RMYhqWOS3ekd0RJ3bLtTO5TgI=" />
</appSettings>
我看不到為什么它無法連接到我的azure存儲器,因為我將相同的連接用於可以正常工作的其他項目。
容器變量返回一個空值,因此錯誤顯示:
附加信息:值不能為null。
這只是一個簡單的變量命名錯誤:)
在導致異常的代碼行中,您引用的是Web.config文件中的變量StorageContainerReference 。 但是,在您的Web.config文件中,該變量名為CloudStorageContainerReference 。
試試這個,它應該可以幫助:
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=mediasvczfpr6c9dg9jx2;AccountKey=+DlbXTjZG7bni9LOKaYOxqsxBxXVmzh7BpPzWByBi/Csl9XZ+VRcqMbZxuwcbDIg88o73+6M9ByVLwsHNNyLKQ==" />
<add key="StorageContainerReference" value="temporary-media" />
<add key="StorageAccountKey" value ="+DlbXTjZG7bni9LOKaYOxqsxBxXVmzh7BpPzWByBi/Csl9XZ+VRcqMbZxuwcbDIg88o73+6M9ByVLwsHNNyLKQ==" />
<add key="StorageAccountName" value="mediasvczfpr6c9dg9jx2" />
<add key="MediaAccountName" value="azurevideoportal" />
<add key="MediaAccountKey" value="T2yMBqN0mk2O//cX+5RMYhqWOS3ekd0RJ3bLtTO5TgI=" />
</appSettings>
從代碼中的這一行
var container = CloudStorageAccount.Parse(
ConfigurationManager.AppSettings["StorageConnectionString"]).CreateCloudBlobClient()
.GetContainerReference(ConfigurationManager.AppSettings["StorageContainerReference"]);
我在您的AppSettings中沒有看到任何名為StorageContainerReference的內容 。 從Azure文檔本身,我認為類似這樣的方法是鏈接到Azure文檔的正確方法
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference("ContainerName");
在您的示例中,可能是因為沒有提供給定名稱的設置,或者可能是StorageConnectionString設置中的一項
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.