Esporta (0) Stampa
Espandi tutto

Esecuzione di transazioni di gruppi di entità

Aggiornamento: agosto 2014

Il servizio tabelle supporta le transazioni batch sulle entità che si trovano nella stessa tabella e appartengono allo stesso gruppo di partizioni. In una singola transazione è possibile eseguire più operazioni Insert Entity, Update Entity, Merge Entity, Delete Entity, Insert Or Replace Entity e Insert Or Merge Entity.

Una transazione di gruppi di entità deve soddisfare i requisiti seguenti:

  • Tutte le entità soggette alle operazioni come parte della transazione devono presentare lo stesso valore PartitionKey.

  • Un'entità può comparire una sola volta nella transazione e solo un'operazione può essere eseguita su di essa.

  • La transazione può includere al massimo 100 entità e il relativo payload totale non può superare le dimensioni di 4 MB.

  • Tutte le entità sono soggette alle limitazioni descritte in Informazioni sul modello di dati del servizio tabelle.

La semantica per le transazioni di gruppi di entità è definita dalla specifica del protocollo OData. Nella specifica OData sono definiti i concetti seguenti relativi alle richieste batch:

  • Un set di modifiche è un gruppo di una o più operazioni di inserimento, aggiornamento o eliminazione.

  • Un batch è un contenitore di operazioni, inclusi uno o più set di modifiche e operazioni di query.

Il servizio tabelle supporta un subset della funzionalità definita dalla specifica OData:

  • Il servizio tabelle supporta un set di modifiche per batch. Il set di modifiche può includere più operazioni di inserimento, aggiornamento ed eliminazione. Se un batch include più di un set di modifiche, il primo set verrà elaborato dal servizio, mentre quelli successivi verranno rifiutati con il codice di stato 400 (Richiesta non valida).

ImportantImportante
In un set di modifiche non è consentito eseguire più operazioni in una singola entità.

  • Non è consentito eseguire un'operazione di query in un batch che contiene operazioni di inserimento, aggiornamento o eliminazione. Deve essere inviata singolarmente nel batch.

  • Le operazioni in un set di modifiche vengono elaborate in modo atomico. Ciò significa che tutte le operazioni nel set di modifiche avranno esito negativo o positivo. Le operazioni vengono elaborate nell'ordine in cui sono specificate nel set di modifiche.

  • Il servizio tabelle non supporta le operazioni di collegamento in un set di modifiche.

  • Il servizio tabelle supporta un massimo di 100 operazioni in un set di modifiche.

Nelle sezioni seguenti viene descritto come creare una richiesta batch e come interpretarne la risposta e vengono forniti alcuni esempi.

Per eseguire una richiesta batch tramite REST, specificare l'opzione $batch nell'URI della richiesta. Ad esempio:

https://myaccount.table.core.windows.net/$batch

Si noti che l'URI della richiesta non include il nome della tabella.

Una richiesta batch viene inviata al server con una singola direttiva POST. La richiesta deve includere l'intestazione x-ms-version; il valore dell'intestazione deve essere impostato su 2009-04-14 o su una versione successiva.

Il payload XML è un messaggio MIME in più parti contenente il batch e il set di modifiche. Il payload include due limiti MIME:

  • Un limite batch include il set di modifiche.

  • Il limite del set di modifiche separa le singole operazioni di inserimento, aggiornamento ed eliminazione nel batch.

Una singola richiesta nel set di modifiche è identica a una richiesta effettuata quando l'operazione viene chiamata da se stessa. Ad esempio:

  • Per specificare l'intestazione If-Match su un'operazione di aggiornamento, unione o eliminazione, includere l'intestazione nel set di intestazioni di richiesta per l'operazione appropriata nel set di modifiche.

  • Per specificare il formato di payload (JSON o Atom) per ciascuna operazione nel set di modifiche, includere le intestazioni Content-Type, Accept, Version e DataServiceVersion appropriate, come spiegato in Formato di payload per le operazioni del servizio tabelle.

  • Per eliminare l'eco del contenuto della risposta per l'Insert Entity, specificare l'intestazione Prefer con il valore return-no-content per ogni operazione di inserimento nel set di modifiche. Per ulteriori informazioni sull'intestazione Prefer, vedere Riepilogo delle funzionalità del servizio tabelle.

Negli esempi seguenti vengono illustrate delle richieste batch contenenti due operazioni Insert Entity e un'operazione Merge Entity. In questi esempi, poiché non si è interessati al payload di eco nella risposta per le operazioni di inserimento, viene inclusa l'intestazione Prefer:return-no-content.

Richiesta batch con payload Atom

POST /$batch HTTP/1.1
User-Agent: Microsoft ADO.NET Data Services
x-ms-version: 2013-08-15
x-ms-date: Thu, 30 Aug 2013 20:45:13 GMT
Authorization: SharedKeyLite myaccount:asOEzsCDS7YEe6oi+bx47KMwbXL0lYZCOlR/oc3FReQ=
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 2.0;NetFx
Content-Type: multipart/mixed; boundary=batch_a1e9d677-b28b-435e-a89e-87e6a768a431
Host: MyHostName:10002
Prefer: return-no-content
Content-Length: ###

--batch_a1e9d677-b28b-435e-a89e-87e6a768a431
Content-Type: multipart/mixed; boundary=changeset_8a28b620-b4bb-458c-a177-0959fb14c977

--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1
Content-ID: 1
Content-Type: application/atom+xml;type=entry
Content-Length: ###

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
  <title />
  <updated>2013-08-30T20:45:13.7155321Z</updated>
  <author>
    <name />
  </author>
  <id />
  <content type="application/xml">
    <m:properties>
      <d:PartitionKey>Channel_19</d:PartitionKey>
      <d:RowKey>1</d:RowKey>
      <d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp>
      <d:Rating m:type="Edm.Int32">9</d:Rating>
      <d:Text>.NET...</d:Title>
    </m:properties>
  </content>
</entry>
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1
Content-ID: 2
Content-Type: application/atom+xml;type=entry
Prefer: return-no-content
Content-Length: ###

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
  <title />
  <updated>2013-08-30T20:45:13.7155321Z</updated>
  <author>
    <name />
  </author>
  <id />
  <content type="application/xml">
    <m:properties>
      <d:PartitionKey>Channel_19</d:PartitionKey>
      <d:RowKey>2</d:RowKey>
      <d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp>
      <d:Rating m:type="Edm.Int32">9</d:Rating>
      <d:Text>Azure...</d:Title>
    </m:properties>
  </content>
</entry>
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

MERGE https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19', RowKey='3') HTTP/1.1
Content-ID: 3
Content-Type: application/atom+xml;type=entry
Content-Length: ###

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
  <title />
  <updated>2013-08-30T20:44:09.8869156Z</updated>
  <author>
    <name />
  </author>
  <id>https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='3')</id>

  <content type="application/xml">
    <m:properties>
      <d:PartitionKey>Channel_19</d:PartitionKey>
      <d:RowKey>3</d:RowKey>
      <d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp>
      <d:Rating m:type="Edm.Int32">9</d:Rating>
      <d:Text>PDC 2008...</d:Title>
    </m:properties>
  </content>
</entry>
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977--
--batch_a1e9d677-b28b-435e-a89e-87e6a768a431—



Richiesta batch con payload JSON


POST https://myaccount.table.core.windows.net/$batch HTTP/1.1
x-ms-version: 2013-08-15
Accept-Charset: UTF-8
DataServiceVersion: 3.0;
MaxDataServiceVersion: 3.0;NetFx
Content-Type: multipart/mixed; boundary=batch_a1e9d677-b28b-435e-a89e-87e6a768a431
x-ms-date: Mon, 14 Oct 2013 18:25:49 GMT
Authorization: SharedKey myaccount:50daR38MtfezvbMdKrGJVN+8sjDSn+AaA=
Host: 127.0.0.1:10002
Content-Length: 1323
Connection: Keep-Alive

--batch_a1e9d677-b28b-435e-a89e-87e6a768a431
Content-Type: multipart/mixed; boundary=changeset_8a28b620-b4bb-458c-a177-0959fb14c977

--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1
Content-Type: application/json
Accept: application/json;odata=minimalmetadata
Prefer: return-no-content
DataServiceVersion: 3.0;

{"PartitionKey":"Channel_19", "RowKey":"1", "Rating":9, "Text":".NET..."}
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1
Content-Type: application/json
Accept: application/json;odata=minimalmetadata
Prefer: return-no-content
DataServiceVersion: 3.0;

{"PartitionKey":"Channel_17", "RowKey":"2", "Rating":9, "Text":"Azure..."}
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

MERGE https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_17', RowKey='3') HTTP/1.1
Content-Type: application/json
Accept: application/json;odata=minimalmetadata
DataServiceVersion: 3.0;

{"PartitionKey":"Channel_19", "RowKey":"3", "Rating":9, "Text":"PDC 2008..."}

--changeset_8a28b620-b4bb-458c-a177-0959fb14c977--
--batch_a1e9d677-b28b-435e-a89e-87e6a768a431

Negli esempi seguenti viene illustrata una richiesta batch per una query. È possibile includere nel set di modifiche una sola query.

Query batch con formato Atom

POST /$batch HTTP/1.1
User-Agent: Microsoft ADO.NET Data Services
x-ms-version: 2013-08-15
x-ms-date: Thu, 30 Aug 2013 20:45:13 GMT
Authorization: SharedKeyLite myaccount:asOEzsCDS7YEe6oi+bx47KMwbXL0lYZCOlR/oc3FReQ=
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Content-Type: multipart/mixed; boundary=batch_f351702c-c8c8-48c6-af2c-91b809c651ce
Content-Length: ###

--batch_f351702c-c8c8-48c6-af2c-91b809c651ce
Content-Type: application/http
Content-Transfer-Encoding: binary

GET https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='2') HTTP/1.1

--batch_f351702c-c8c8-48c6-af2c-91b809c651ce—

Query batch con formato JSON

POST https://myaccount.table.core.windows.net/$batch HTTP/1.1
x-ms-version: 2013-08-15
Accept-Charset: UTF-8
DataServiceVersion: 3.0;
MaxDataServiceVersion: 3.0;NetFx
Content-Type: multipart/mixed; boundary=batch_f351702c-c8c8-48c6-af2c-91b809c651ce
x-ms-date: Mon, 14 Oct 2013 19:03:55 GMT
Authorization: SharedKey testaccount1:y6TxCsXeRiR4l1KqihwRJ05Qb5zBk=
Host: 127.0.0.1:10002
Content-Length: 255
Connection: Keep-Alive

--batch_f351702c-c8c8-48c6-af2c-91b809c651ce
Content-Type: application/http
Content-Transfer-Encoding: binary

GET https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='2') HTTP/1.1
Accept: application/json;odata=minimalmetadata

--batch_f351702c-c8c8-48c6-af2c-91b809c651ce

La risposta restituisce un codice di stato globale per la richiesta batch e singoli codici di stato e frammenti di risultato per ogni operazione nel set di modifiche. La risposta è un messaggio MIME in più parti che include un limite batch e un limite del set di modifiche.

Il servizio tabelle restituisce un codice di stato per l'intera richiesta batch e uno o più codici di stato per le operazioni nel set di modifiche, a seconda del fatto che abbiamo avuto esito positivo o esito negativo.

Supponendo che la richiesta batch sia stata autenticata in modo appropriato e che sia stata ricevuta correttamente dal servizio tabelle, la richiesta batch restituisce il codice di stato 202 (Accettato), anche se una delle operazioni nel set di modifiche ha esito negativo. Se la richiesta batch ha esito negativo, l'errore si verifica prima che venga eseguita qualsiasi operazione nel set di modifiche. Ad esempio, se la richiesta batch ha esito negativo a causa di un errore di autenticazione, il codice di stato indicherà questo tipo di errore.

Le operazioni in un set di modifiche vengono elaborate in modo atomico. Ciò significa che tutte le operazioni nel batch avranno esito positivo, in caso contrario l'intero batch avrà esito negativo. Il servizio tabelle continua l'elaborazione delle operazioni nel set di modifiche finché una non ha esito negativo. Se un'operazione ha esito negativo, viene eseguito il rollback di tutte le operazioni precedenti nel batch. Le transazioni di gruppi di entità vengono eseguite con isolamento dello snapshot.

Il codice di stato per una singola operazione in un set di modifiche viene visualizzato nella risposta del set di modifiche. Quando una singola operazione ha esito negativo, la risposta per il set di modifiche indica il codice di stato 400 (Bad Request). Le informazioni aggiuntive sull'errore nella risposta indicano l'operazione che ha avuto esito negativo restituendo l'indice dell'operazione. L'indice è il numero di sequenza del comando nel payload.

Per un esempio, vedere la risposta all'errore riportata di seguito.

Negli esempi seguenti vengono illustrate le risposte per le operazioni batch inviate nelle richieste di esempio illustrate in precedenza.

Risposta alla richiesta in formato Atom

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: multipart/mixed; boundary=batchresponse_dc0fea8c-ed83-4aa8-ac9b-bf56a2d46dfb
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: b4b49b3e-19a9-4091-a280-da76a09da8d4
Date: Thu, 30 Aug 2013 20:44:09 GMT

334
batchresponse_dc0fea8c-ed83-4aa8-ac9b-bf56a2d46dfb 
Content-Type: multipart/mixed; boundary=--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977

--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 204 No Content
Content-ID: 1
Cache-Control: no-cache
Preference-Applied: return-no-content
ETag: W/"0x8D101F7E4B662C4"
Location: https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='1')
DataServiceVersion: 3.0;

--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 204 No Content
Content-ID: 2
Cache-Control: no-cache
Preference-Applied: return-no-content
ETag: W/"0x8C134F7A4B692D8"
Location: https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='2')
DataServiceVersion: 3.0;

--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 204 No Content
Content-ID: 3
Cache-Control: no-cache
ETag: W/"0x8A541B7C4D699D7"
DataServiceVersion: 3.0;

--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977--
--batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83--

Risposta alla richiesta in formato JSON

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Content-Type: multipart/mixed; boundary=batchresponse_e69b1c6c-62ff-471e-ab88-9a4aeef0a880
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: ed9c96eb-9473-4fd9-abf6-fa4dcf0d6295
x-ms-version: 2013-08-15
X-Content-Type-Options: nosniff
Date: Mon, 14 Oct 2013 18:25:49 GMT
Content-Length: 1647

--batchresponse_e69b1c6c-62ff-471e-ab88-9a4aeef0a880
Content-Type: multipart/mixed; boundary=changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25

--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 204 No Content
Content-ID: 1
X-Content-Type-Options: nosniff
Cache-Control: no-cache
Preference-Applied: return-no-content
DataServiceVersion: 3.0;
Location: https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='1')
DataServiceId: https://myaccount.table.core.windows.net/Blogs (PartitionKey='Channel_19',RowKey='1')
ETag: W/"0x8D101F7E4B662C4"


--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 204 No Content
Content-ID: 2
X-Content-Type-Options: nosniff
Cache-Control: no-cache
Preference-Applied: return-no-content
DataServiceVersion: 3.0;
Location: https://myaccount.table.core.windows.net/Blogs (PartitionKey='Channel_19',RowKey='2')
DataServiceId: https://myaccount.table.core.windows.net/Blogs (PartitionKey='Channel_19',RowKey='2')
ETag: W/"0x8C134F7A4B692D8"


--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 204 No Content
Content-ID: 3
X-Content-Type-Options: nosniff
Cache-Control: no-cache
DataServiceVersion: 1.0;
ETag: W/"0x8A541B7C4D699D7"


--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25--
--batchresponse_e69b1c6c-62ff-471e-ab88-9a4aeef0a880--

Negli esempi seguenti vengono illustrate le risposte per le query inviate nelle richieste di esempio illustrate in precedenza.

Risposta alla query batch con formato Atom

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: multipart/mixed; boundary=batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 9202c4a1-43af-4dc0-baca-aa71f7a7407b
Date: Thu, 30 Aug 2013 20:44:10 GMT

--batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 200 OK
Content-Type: application/atom+xml;charset=utf-8
Cache-Control: no-cache
ETag: W/"0x5B168C7B6E589D2"
DataServiceVersion: 3.0;

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xml:base="http://127.0.0.1:10002/testaccount1/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:etag="W/&quot;0x5B168C7B6E589D2&quot;" xmlns="http://www.w3.org/2005/Atom">
    <id> https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='1')</id>
  <title type="text"></title>
  <updated>2013-08-30T20:44:10Z</updated>
  <author>
    <name />
  </author>
  <link rel="edit" title="Blogs" href=" Blogs(PartitionKey='Channel_19',RowKey='2')" />
  <category term="myaccount.Blogs" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
  <content type="application/xml">
    <m:properties>
      <d:PartitionKey>Channel_19</d:PartitionKey>
       <d:RowKey>2</d:RowKey>
       <d:Timestamp m:type="Edm.DateTime">2013-08-30T20:44:09.5789464Z</d:Timestamp>
       <d:Text>.Net...</d:RowKey>
      <d:Rating m:type="Edm.Int32">9</d:Rating>
    </m:properties>
  </content>
</entry>
--batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83--

Risposta alla query batch con formato JSON

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Content-Type: multipart/mixed; boundary=batchresponse_0a568496-fb38-4a83-9984-5908d7f4c63d
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 6f2aafa3-19e9-434c-85f2-d178941c2d4b
x-ms-version: 2013-08-15
X-Content-Type-Options: nosniff
Date: Mon, 14 Oct 2013 19:13:30 GMT
Content-Length: 615

--batchresponse_0a568496-fb38-4a83-9984-5908d7f4c63d
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 200 OK
DataServiceVersion: 3.0;
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8
X-Content-Type-Options: nosniff
Cache-Control: no-cache
ETag: W/"0x5B168C7B6E589D2"

{"odata.metadata":" https://myaccount.table.core.windows.net/Blogs/$metadata#Blogs/@Element","PartitionKey":"Channel_19","RowKey":"2","Timestamp":"2013-10-14T18:25:49.8922467Z","Rating":9,"Text":"Azure..."}
--batchresponse_0a568496-fb38-4a83-9984-5908d7f4c63d--

Negli esempi seguenti vengono illustrate le risposte da richieste batch contenenti un'operazione che ha avuto esito negativo. Si noti che la risposta batch restituisce il codice di stato 202 (Accettato), mentre la singola operazione che ha avuto esito negativo restituisce il codice di stato 400 (Richiesta non valida). Le informazioni aggiuntive sull'errore sono incluse nel corpo della risposta per l'operazione che ha avuto esito negativo. L'elemento code specifica il codice di errore del servizio di archiviazione, mentre l'elemento message inizia con l'indice dell'operazione che ha avuto esito negativo, seguito dalla stringa del messaggio di errore. Per individuare l'operazione che ha avuto esito negativo, analizzare il valore di indice nel messaggio. Le operazioni vengono indicizzate a partire da zero.

Risposta di errore alla richiesta in formato Atom

Nell'esempio relativo ad Atom, notare che l'operazione che ha avuto esito negativo era la quarta nel set di modifiche. Nell'elemento message il messaggio inizia con il numerale 3, seguito da informazioni dettagliate sull'errore.

<message xml:lang="en-US">3:One of the request inputs is not valid.</message>

Di seguito è riportata la risposta completa:

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: multipart/mixed; boundary=batchresponse_7ab1553a-7dd6-44e7-8107-bf1ea1ab1876
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 45ac953e-a4a5-42ba-9b4d-97bf74a8a32e
Date: Thu, 30 Apr 2009 20:45:13 GMT

6E7
--batchresponse_7ab1553a-7dd6-44e7-8107-bf1ea1ab1876
Content-Type: multipart/mixed; boundary=changesetresponse_6cc856b4-8cb9-41eb-b8d2-bb73475c6cec

--changesetresponse_6cc856b4-8cb9-41eb-b8d2-bb73475c6cec
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 400 Bad Request
Content-ID: 4
Content-Type: application/xml
Cache-Control: no-cache
DataServiceVersion: 1.0;

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <code>InvalidInput</code>
  <message xml:lang="en-US">3:One of the request inputs is not valid.</message>
</error>
--changesetresponse_6cc856b4-8cb9-41eb-b8d2-bb73475c6cec--
--batchresponse_7ab1553a-7dd6-44e7-8107-bf1ea1ab1876--

Risposta di errore alla richiesta in formato JSON

Nell'esempio relativo a JSON, notare che l'operazione che ha avuto esito negativo era la prima nel set di modifiche. Nella coppia nome/valore di message, il messaggio inizia con 0 numerale, seguito da informazioni dettagliate sull'errore.

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Content-Type: multipart/mixed; boundary=batchresponse_4e1c04af-af2b-4cfc-9e35-7677a5efcfca
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 8abd3c55-a72e-47ba-ae0b-ba43abeb76ae
x-ms-version: 2013-08-15
X-Content-Type-Options: nosniff
Date: Mon, 14 Oct 2013 19:21:58 GMT
Content-Length: 1051

--batchresponse_4e1c04af-af2b-4cfc-9e35-7677a5efcfca
Content-Type: multipart/mixed; boundary=changesetresponse_e2a26601-bba8-4c1a-8a8c-bb66badcbca1

--changesetresponse_e2a26601-bba8-4c1a-8a8c-bb66badcbca1
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 400 Bad Request
Content-ID: 1
X-Content-Type-Options: nosniff
DataServiceVersion: 3.0;
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8

{"odata.error":{"code":"OutOfRangeInput","message":{"lang":"en-US","value":"0:One of the request inputs is out of range.\nRequestId:8abd3c55-a72e-47ba-ae0b-ba43abeb76ae\nTime:2013-10-14T19:21:58.0890048Z}}}
--changesetresponse_e2a26601-bba8-4c1a-8a8c-bb66badcbca1--
--batchresponse_4e1c04af-af2b-4cfc-9e35-7677a5efcfca--

Vedere anche

Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft