我在我的工作角色中调用 CloudTableClient.CreateTableIfNotExist 方法,我收到一个异常,内部异常为“请求输入之一超出范围”。
我做了一些研究,发现这是由于将表命名为非法表名引起的,但是,我尝试为我的表命名几个不同的名称,但都没有成功。我尝试过的一些表名是:
- 例外
- 异常信息
- 错误列表
他们都因相同的错误而失败。
编辑
这是我用来创建表的代码:
public static void InitializeTableStorage()
{
var storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting(Constants.StorageConnectionString));
// Retrieve storage account from connection-string
// Create the table client
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
// Create the table if it doesn't exist
string tableName = ExceptionsTableName;
tableClient.CreateTableIfNotExist(tableName);
}
这是出错的 HTTP 请求:
要求:
GET https://<account>.table.core.windows.net/Tables('exceptioninfo') HTTP/1.1
User-Agent: Microsoft ADO.NET Data Services
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 2.0;NetFx
x-ms-version: 2011-08-18
x-ms-date: Mon, 03 Sep 2012 21:54:20 GMT
Authorization: SharedKeyLite <AccountName>:aBcDeFgAbCdEfGhIjKlMnOpQrStUba+jKlMn/DqrsTu=
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
Host: <account>.table.core.windows.net
Connection: Keep-Alive
<account>
都是小写,<AcountName>
是驼峰式(如果这意味着什么)这是响应:
HTTP/1.1 400 One of the request inputs is out of range.
Content-Length: 343
Content-Type: application/xml
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: abcdefgh-ijkl-44ed-9ff2-3d07df99c266
Date: Mon, 03 Sep 2012 21:54:03 GMT
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code>OutOfRangeInput</code>
<message xml:lang="en-US">One of the request inputs is out of range.
RequestId:abcdefgh-ijkl-44ed-9ff2-3d07df99c266
Time:2012-09-03T21:54:03.6716225Z</message>
</error>
我使用相同的 CloudStorageAccount 来创建队列和 Blob,并且成功了。
尝试在 azure 中创建表时,是否还有其他原因导致 OutOfRange 异常?