我尝试连接到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>
我无法理解为什么它不能连接到我的天蓝色存储,因为我使用相同的连接来处理其工作正常的不同项目。
容器变量返回null值,因此错误显示:
附加信息:值不能为空。
答案 0 :(得分:1)
从代码中的这一行
(define (replace-all haystack needle replacement)
;; most of the processing works on lists
;; of char, not strings.
(let ((haystack (string->list haystack))
(needle (string->list needle))
(replacement (string->list replacement))
(needle-len (string-length needle)))
(let loop ((haystack haystack) (acc '()))
(cond ((null? haystack)
(list->string (reverse acc)))
((prefix? haystack needle)
(loop (list-tail haystack needle-len)
(reverse-append replacement acc)))
(else
(loop (cdr haystack) (cons (car haystack) acc)))))))
(replace-all "The cat looks like a cat." "cat" "dog")
; ==> "The dog looks like a dog."
我在AppSettings中看不到任何名为 StorageContainerReference 的内容。从Azure文档本身,我认为这是正确的方式 Link to Azure Docs
var container = CloudStorageAccount.Parse(
ConfigurationManager.AppSettings["StorageConnectionString"]).CreateCloudBlobClient()
.GetContainerReference(ConfigurationManager.AppSettings["StorageContainerReference"]);
从您的示例中可能是因为没有给出名称的设置,或者可能是 StorageConnectionString 设置中的结果
答案 1 :(得分:1)
这只是一个简单的变量命名错误:)
在导致异常的代码行中,您正在引用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>