0

Windows azure テーブル ストレージを実装しようとしていますが、「テーブルが見つかりません」というメッセージが表示されます

これが私の接続文字列です(ここにxmlを投稿する方法は?)(リンクはごめんなさい)

ServiceConfiguration.Cloud.cscfg: http://pastebin.com/F9tuckfT

ServiceConfiguration.Local.cscfg:

http://pastebin.com/XZHEvv6g

そして、ここに私のWindows Azureポータルからの印刷画面があります

http://s20.postimage.org/nz1sxq7hp/print.png

コード(コードが長くて申し訳ありません...しかし、3つのページがあります...ログインが機能し、ログインすると、grid.aspxを呼び出すmain.aspxに移動します... grid.aspxで「テーブルがありません」というエラーが表示されます見つかった」このコードはすべて質問にとって重要です.....) http://pastebin.com/RnuvvqsM

私が試してみました

private void popula()
    {
        var account = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("Conn"));
        account.CreateCloudTableClient().CreateTableIfNotExist("fiscal");
        var context = new CRUDManifestacoesEntities(account.TableEndpoint.ToString(), account.Credentials);

        Hashtable ht = (Hashtable)ViewState["filtro"];

        if (ht == null)
            GridView1.DataSource = context.SelectConc(ViewState["x"].ToString());
        else
            GridView1.DataSource = context.SelectConc(ht);

        GridView1.DataBind();
    }

しかし、それも機能しません

同様の他のエラーは、テーブルにユーザーを追加しようとしたときです

public string addusr(string nome, string cidade, string cpf, string email, string telefone)
    {
        try
        {
            if (nome.Length == 0)
                return "f:Preencha o campo nome.";

            if (cidade.Length == 0)
                return "f:Preencha o campo cidade.";

            if (cpf.Length == 0)
                return "f:Preencha o campo cpf.";

            if (!Valida(cpf))
                return "f:CPF Invalido.";

            if (email.Length == 0)
                return "f:Preencha o campo email.";

            Regex rg = new Regex(@"^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$");
            if (!rg.IsMatch(email))
            {
                return "f:Email Invalido";
            }

            List<UserEntity> lst = new List<UserEntity>();
            var _account = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("Conn"));
            _account.CreateCloudTableClient().CreateTableIfNotExist("fiscal");
            var _context = new CRUDUserEntities(_account.TableEndpoint.ToString(), _account.Credentials);


            var account = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("Conn"));
            account.CreateCloudTableClient().CreateTableIfNotExist("fiscal");
            var context = new CRUDUserEntities(account.TableEndpoint.ToString(), account.Credentials);
            UserClientEntity entity = new UserClientEntity() { nome = nome, cidade = cidade, cpf = cpf, email = email, telefone = telefone };
            context.ADDUSociate(entity);
            context.SaveChanges();
            return "k";
        }

次のエラーが表示されます: f:このリクエストの処理中にエラーが発生しました。| System.Data.Services.Client.DataServiceContext.SaveResult.HandleBatchResponse() で System.Data.Services.Client.DataServiceContext.SaveResult.EndRequest() で System.Data.Services.Client.DataServiceContext.SaveChanges(SaveChangesOptions オプション) で AzureTableLayer .CRUDUserEntities.ADDUSociate(UserClientEntity エンティティ) at mobile.Service1.addusr(文字列 nome、文字列 cidade、文字列 cpf、文字列 email、文字列 telefone)

2つの問題は関連していると思います

編集:デバッグしたところ、StorageClient フレームワークを読み込めないことがわかりました...このエラーが発生しています ファイルまたはアセンブリを読み込めませんでした Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

の解き方?

4

2 に答える 2

1

テーブルストレージをどのように使用しようとしていますか?.NET SDKを購入しましたか?PHP?Java?ノード?...通常、このエラーが発生した場合は、...テーブルが存在しないことを意味します。

使用を開始する前に、テーブルを作成するために、CreateIfNotExistsと同様のメソッドで使用しているSDKを確認してください。

編集:

問題はおそらくここで発生します:

        var account = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("Conn"));
        var context = new CRUDManifestacoesEntities(account.TableEndpoint.ToString(), account.Credentials);

        Hashtable ht = (Hashtable)ViewState["filtro"];

        if (ht == null)
            GridView1.DataSource = context.SelectConc(ViewState["x"].ToString());
        else
            GridView1.DataSource = context.SelectConc(ht);

varaccount = ...行の後に次のコードを追加します。

     account.CreateCloudTableClient().CreateTableIfNotExist("<name of your table>");
于 2013-01-17T14:59:09.787 に答える
0

API が変更されました。次のようにする必要があります。

var key = CloudConfigurationManager.GetSetting("Setting1");
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(key);
var client = storageAccount.CreateCloudTableClient();

CloudTable table = client.GetTableReference(ContactTableName);
table.CreateIfNotExists();
于 2013-02-25T14:03:02.293 に答える