gpt4 book ai didi

.net - Azure Blob 存储引发 StorageClientException : "One of the request inputs is out of range"

转载 作者:行者123 更新时间:2023-12-03 01:12:19 29 4
gpt4 key购买 nike

尝试从云服务 Web 角色内运行的 Azure 存储帐户进行读取会抛出异常

[StorageClientException: One of the request inputs is out of range.]
Microsoft.WindowsAzure.StorageClient.Tasks.Task`1.get_Result() +96
Microsoft.WindowsAzure.StorageClient.Tasks.Task`1.ExecuteAndWait() +271
Microsoft.WindowsAzure.StorageClient.CloudBlobContainer.SetPermissions(BlobContainerPermissions permissions, BlobRequestOptions options) +229

我发现的有关该主题的所有文章都表明问题出在存储连接字符串或 blob 容器名称中的大写字母。

代码如下:

var cloudStorageAccount = CloudStorageAccount.FromConfigurationSetting(StorageConnectionStringConfigKey);
var blobClient = cloudStorageAccount.CreateCloudBlobClient();
var blobContainerName = "containername";
var blobContainer = blobClient.GetContainerReference(blobContainerName.ToLower(CultureInfo.InvariantCulture));
var permissions = new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Container };
blobContainer.SetPermissions(permissions);
var blobName = "SomeXmlFile.xml";
var blob = blobContainer.GetBlobReference(blobName);
var text = blob.DownloadText();

在 blobContainer.SetPermissions 处引发异常。

当使用相同的代码和相同的凭据从计算模拟器(而不是从实时 Web 角色)访问相同的容器时,一切正常。我可以轻松地从 Neudesic 的 Azure 存储资源管理器读取 blob 容器。

可能相关:我的本地环境只有 2012 年 6 月的 Azure SDK(版本 1.7)。另外,我最近将应用程序从 1.0.8 升级到 Postmark 1.0.14,及其依赖项 Newtownsoft Json.NET(从 4.0 升级到 4.5.8)。

我将逐行构建一个应用程序,不带包,只是为了测试连接,然后添加包。

当他们绝对确定所有信用和标识符字符串都是正确的小写时,是否有人见过这个?

最佳答案

哇,我是不是傻了。

问题原来是这样的:我有两个设置:

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="Cloud" ...>
<WebRole name="WebRole" vmsize="Small">
<ConfigurationSettings>
<Setting name="MessagesConfigurationBlobName" />
<Setting name="MessagesConfigurationBlobContainerName" />
</ConfigurationSettings>
</WebRole>
</ServiceDefinition>

这是本地(模拟器)配置文件:

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration ...>
<Role name="WebRole">
<ConfigurationSettings>
<Setting name="MessagesConfigurationBlobName" value="LocalMessageConfig.xml"/>
<Setting name="MessagesConfigurationBlobContainerName" value="containername"/>
</ConfigurationSettings>
</Role >
</ServiceConfiguration>

这是云文件:

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration ...>
<Role name="WebRole">
<ConfigurationSettings>
<Setting name="MessagesConfigurationBlobName" value="containername" />
<Setting name="MessagesConfigurationBlobContainerName" value="CloudMessageConfig.xml"/>
</ConfigurationSettings>
</Role >
</ServiceConfiguration>

我现在要痛痛快快地哭一场,并将我的时间跟踪(周六凌晨 3 点)从“紧急客户工作”调整为“开发人员 PEBCAK”。

这个故事的寓意是,当相同的代码在一种环境中失败而在另一种环境中成功时,不要只比较环境,还要比较环境之间您自己的代码中可能不同的所有内容 .

哦,不要尝试在凌晨 3 点部署软件。曾经。

关于.net - Azure Blob 存储引发 StorageClientException : "One of the request inputs is out of range",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11818141/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com