2016-06-20 4 views
0

Ich habe eine TableEntity wie folgt aus:schlechte Anforderungsfehler, wenn TableEntity persistierenden

public class TableEntity : TableEntity 
{ 
    public string SomeXml { get; set; } 
} 

, die genannt SomeXmL eine XML-Zeichenfolge enthält. Die meisten TableEntities bestehen in Ordnung, aber für einige, die ich bekommen:

{"The remote server returned an error: (400) Bad Request."} 

Die XML-Zeichenfolge eines der TableEntities die Ausnahme enthält 33.933 Zeichen zu erzeugen. Gibt es eine Grenze? Ich bin mir nicht sicher, wie ich sonst die Ursache der Ausnahme feststellen könnte. Ein Beispiel-XML, das die Ausnahme verursacht, kann here gefunden werden.

+2

Was die Statusmeldung HTTP ist? es bietet nützliche Informationen. Sie können es aus der Ausnahme mit 'e.RequestInformation.HttpStatusMessage' abrufen. Was sind Ihr Partitions- und Zeilenschlüssel? – yonisha

+0

Toller Tipp. Vielen Dank. – cs0815

Antwort

2

Der Grund für diesen Fehler liegt darin, dass die Daten, die Sie einfügen möchten, die maximal zulässige Größe für ein Entitätsattribut überschreiten. The maximum size of an entity attribute is 64KB however because strings in Azure Tables are UTF-16 encoded, maximum size of a String type attribute is 32KB.

Da Ihre XML-Größe mehr als 32 KB beträgt, erhalten Sie diesen Fehler.

Als ich versuchte, die Beispieldaten, die Sie in einer Tabelle geteilt in meinem Speicherkonto einfügen ich folgende Fehlermeldung bekam zurück:

{ 
    "odata.error": { 
     "code": "PropertyValueTooLarge", 
     "message": { 
      "lang": "en-US", 
      "value": "The property value exceeds the maximum allowed size (64KB). If the property value is a string, it is UTF-16 encoded and the maximum number of characters should be 32K or less.\nRequestId:693f46ec-0002-0012-3a5a-cbcb16000000\nTime:2016-06-21T01:14:00.4544620Z" 
      } 
     } 
    } 
+0

Kann ich das zippen? Oder gibt es andere Möglichkeiten, dies zu speichern? – cs0815

+2

Zippen würde IMHO nicht helfen, da Sie die Größe der XML-Datei nicht kennen. Eine Alternative wäre, diese XML-Datei im Blob-Speicher zu speichern (wobei jedes Blob bis zu 200 GB groß sein kann) und die Blob-URL in der Tabelle zu speichern. HTH. –

+0

Yeah Blob Speicher klingt gut. Etwas überrascht über die Einschränkungen des Tabellenspeichers. – cs0815

Verwandte Themen