1

DataServiceRequestExceptionエンティティを紺碧のテーブルに保存しようとすると例外が発生します。_myContext.SaveChangesWithRetries();それは私が問題が何であるかを見るためにグーグルしようとしたこの行で起こります。しかし、それに対する答えは見つかりませんでした。

誰もが問題が何であるかを知っていますか?

ストレージクリエーター

public CloudTableClient GetMusicClient() {
      //retrieve connection string from settings
      CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
          RoleEnvironment.GetConfigurationSettingValue("StorageConnectionString"));

      //create table client
      CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

      //create table if doesn't exist
      string tableName = "music";
      tableClient.CreateTableIfNotExist(tableName);

      return tableClient;
}

WebAPI

public Music PostMusic(string genre, string artist, string random)
{
    CloudTableClient _myTableClient = _myTableRepo.GetMusicClient();
    TableServiceContext _myContext =  _myTableClient.GetDataServiceContext();

    Music music = new Music(genre, artist);
    music.Score = "10";
    music.Year = "2012";
    music.Random = random;
    try
    {
        _myContext.AddObject(random, music);
        _myContext.SaveChangesWithRetries();
    }
    catch (StorageClientException e)
    { }
    catch (DataServiceRequestException e)
    {
        System.Diagnostics.Debug.WriteLine(e.StackTrace);
    }

    return music;

}

スタックトレース

An error occurred while processing this request.
   at Microsoft.WindowsAzure.StorageClient.Tasks.Task`1.get_Result()
   at Microsoft.WindowsAzure.StorageClient.Tasks.Task`1.ExecuteAndWait()
   at MyWebAPI.Controllers.ValuesController.PostMusic(String genre, String artist, String random) in C:\MyWebAPI\MyWebAPI\Controllers\ValuesController.cs:line 61

Music.cs

public class Music : TableServiceEntity
    {
        public Music(string genre, string artist)
        {
            this.PartitionKey = genre;
            this.RowKey = artist;
        }
        public Music() {}
        public string Score { get; set; }
        public string Year { get; set; }
        public string Random { get; set; }
    }
4

1 に答える 1

1

ああ、AddObjectへの最初の引数が間違っているように見えますか?テーブルの名前である「music」である必要がありますが、パラメータ名を信じる場合は、ランダムな文字列を渡しているように見えます。

于 2012-06-05T06:17:52.913 に答える