2

ワーカーロールでCloudTableClient.CreateTableIfNotExistメソッドを呼び出していますが、「要求入力の1つが範囲外です」という内部例外で例外が発生しています。

少し調べてみたところ、これはテーブルに不正なテーブル名を付けたことが原因であることがわかりましたが、テーブルにいくつかの異なる名前を付けようとしましたが、すべて成功しませんでした。私が試したテーブル名のいくつかは次のとおりです。

  • 例外
  • 例外情報
  • エラーのリスト

それらはすべて同じエラーで失敗しました。

編集

テーブルの作成に使用しているコードは次のとおりです。

    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例外が発生する他の理由はありますか?

4

2 に答える 2

3

見つけた。

成功したキューリクエストと失敗したテーブルリクエストから取得したHTTPリクエストとレスポンスを見ると、アカウント名に大文字が含まれていると、すべてが失敗するようです。

これを修正するために、アカウント名をすべて小文字に変更し、すべてが機能しました

于 2012-09-03T23:48:12.407 に答える
0

OutOfRangeInputストレージテーブルでのHTTP400エラーのもう1つの原因は、アカウントパラメータが正しくないことです。cscfgファイルを修正するのを忘れて、

<Setting name="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=TODO;AccountKey=TODO" />
于 2015-11-19T12:05:45.320 に答える