azure - Azure 存储文件 ShareClient 引发异常
问题描述
创建了一个示例控制台应用程序,我正在尝试使用此代码连接到 Azure 文件存储。
var connectionString = "DefaultEndpointsProtocol=https;AccountName=<account-name>;AccountKey=<account-key>;EndpointSuffix=core.windows.net;";
var shareClient = new ShareClient(connectionString, "testfileshare");
shareClient.CreateIfNotExists();
帐户中存在共享名称“ testfileshare ”,并且“ CreateIfNotExists() ”方法调用抛出 AggregateException 并带有消息
“6 次尝试后重试失败”并带有 InnerException 消息“底层连接已关闭:发送时发生意外错误。”
我正在使用 Azure.Storage.Files.Shares,12.4.0 版本。目标框架是.NET4.6.2。尝试将目标框架更新为 .NET4.7.2 但得到相同的错误。
为什么我会收到此错误?
添加堆栈跟踪:
at Azure.Core.Pipeline.RetryPolicy.<ProcessAsync>d__11.MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Azure.Core.Pipeline.RetryPolicy.Process(HttpMessage message, ReadOnlyMemory`1 pipeline)
at Azure.Core.Pipeline.HttpPipelinePolicy.ProcessNext(HttpMessage message, ReadOnlyMemory`1 pipeline)
at Azure.Core.Pipeline.HttpPipelineSynchronousPolicy.Process(HttpMessage message, ReadOnlyMemory`1 pipeline)
at Azure.Core.Pipeline.HttpPipelinePolicy.ProcessNext(HttpMessage message, ReadOnlyMemory`1 pipeline)
at Azure.Core.Pipeline.HttpPipelineSynchronousPolicy.Process(HttpMessage message, ReadOnlyMemory`1 pipeline)
at Azure.Core.Pipeline.HttpPipelinePolicy.ProcessNext(HttpMessage message, ReadOnlyMemory`1 pipeline)
at Azure.Core.Pipeline.HttpPipelineSynchronousPolicy.Process(HttpMessage message, ReadOnlyMemory`1 pipeline)
at Azure.Core.Pipeline.HttpPipeline.Send(HttpMessage message, CancellationToken cancellationToken)
at Azure.Storage.Files.Shares.FileRestClient.Share.<CreateAsync>d__0.MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Azure.Storage.Files.Shares.ShareClient.<CreateInternal>d__31.MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Azure.Storage.Files.Shares.ShareClient.<CreateIfNotExistsInternal>d__34.MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Azure.Storage.Files.Shares.ShareClient.CreateIfNotExists(IDictionary`2 metadata, Nullable`1 quotaInGB, CancellationToken cancellationToken)
at FileStorageTest.Program.Main(String[] args) in C:\Tests\FileStorageTest\FileStorageTest\Program.cs:line 24
解决方案
我发现了这个问题。当我从 nuget 添加 Azure.Storage.Files.Shares 包引用时,我观察到在项目文件中 Azure.Core 引用是从“net461”文件夹添加的,而其他引用是从“netstandard2.0”文件夹添加的,我的应用程序目标框架是“Net4 .6.2"
这导致了这个问题。当我手动将 Azure.Core 参考路径更改为“netstandard2.0”时,它工作正常。
<Reference Include="Azure.Core, Version=1.5.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8, processorArchitecture=MSIL">
<!--<HintPath>..\packages\Azure.Core.1.5.0\lib\net461\Azure.Core.dll</HintPath>-->
<HintPath>..\packages\Azure.Core.1.5.0\lib\netstandard2.0\Azure.Core.dll</HintPath>
</Reference>
我通过升级“Azure.Storage.Files.Shares”包重现了这个问题。我不知道是 VS 问题还是 nuget 问题。
推荐阅读
- rasa-nlu - Rasa 调度器提醒如何将消息返回给客户端,例如应用程序
- python - Django 和子进程:开发服务器在 signal.SIGTERM 上终止
- azure - 通过 Azure SQL 连接 Kentico
- python - DataFrame直方图分组并在同一图中
- python - 函数参数中的 Python 类型注释
- c++ - 如何使用索引命名变量以存储输入 mxArray?
- image-processing - 在此示例中,相关性如何对偶数大小的过滤器起作用?
- java - 模式匹配器返回意外值
- excel - VBA如何动态生成选项按钮的名称?
- css - 你如何使文本输入边框重叠?