Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info
ExecutionFailed
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition policy_name: Execution failed. Reason: error_description at line line_num (possibly around char char_num)", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: Premature end of document while parsing at line 5(possibly around char 0)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Rodzaje błędów i ich możliwe przyczyny
Zasady XMLThreatProtection mogą wywoływać wiele różnych typów błędów ExecutionFailed. W tabeli poniżej znajdziesz różne typy błędów i ich możliwe przyczyny:
Błąd | Przyczyna |
ElementNameExceeded | Przekroczono maksymalną dozwoloną długość ciągu w tagu XML. |
ChildCountExceeded | Przekroczono maksymalną liczbę elementów podrzędnych dozwolonych w ładunku XML. |
NodeDepthExceeded | Maksymalna głębia elementów XML dozwolonych w ładunku XML została przekroczona. |
AttributeCountExceeded | Przekroczono maksymalną liczbę atrybutów w jednym elemencie. |
AttributeNameExceeded | Maksymalna dozwolona długość nazwy atrybutu została przekroczona. |
AttributeValueExceeded | Wartość atrybutu przekracza maksymalną dozwoloną długość. |
TextExceeded | Przekroczono maksymalną dozwoloną długość tekstu. |
CommentExceeded | przekroczono maksymalną dozwoloną długość komentarza; |
PIDataExceeded | Przekroczona została dozwolona długość danych instrukcji przetwarzania. |
PITargetExceeded | Przekroczono długość nazwy instrukcji procesu. |
NSURIExceeded | Przekroczono długość adresu URL przestrzeni nazw. |
NSPrefixExceeded | Przekroczono długość prefiksu przestrzeni nazw. |
NSCountExceeded | Przekroczono liczbę przestrzeni nazw w jednym elemencie. |
Nieprawidłowy ładunek XML | Dane XML są nieprawidłowe. |
ElementNameExceeded
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
Ruch w czasie wykonywania zwraca kod odpowiedzi 500 z tym błędem:
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition policy_name: Execution failed. reason: XMLThreatProtection stepDefinition policy_name: Element name length exceeded num at line line_num(possibly around char char_num)", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Element name length exceeded 5 at line 1(possibly around char 9)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Przyczyna
Ten błąd występuje, gdy ładunek wejściowy określony przez element <Source>
w zasadach zawiera elementy XML, których długość przekracza maksymalną długość określoną w elemencie <Element>
pod elementem <NameLimits>
.
Jeśli na przykład element <Element>
jest określony jako 5
w zasadzie XMLThreatProtection, ale ładunek wejściowy zawiera element o dłuższej nazwie niż 5 znaków, pojawia się ten błąd.
Diagnostyka
Sprawdź komunikat o błędzie, aby zidentyfikować nazwę reguły XMLThreatProtection, numer wiersza i możliwą liczbę znaków w ładunku danych wejściowych, w którym została przekroczona długość elementu.
Na przykład w tym komunikacie o błędzie nazwa zasady to
XML-Threat-Protection-1,
, numer wiersza w pliku danych to1
, a możliwa liczba znaków to9.
.XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Element name length exceeded 5 at line 1(possibly around char 9)
Sprawdź zasadę z błędami (określoną w kroku 1) i zanotuj wartość określoną w elemencie
<Element>
.Na przykład w następującej regule XMLThreatProtection wartość
<Element>
jest ustawiona na5
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>5</Element> <Attribute>5</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>request</Source> <StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Sprawdź konkretny numer wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy długość elementu w tym wierszu jest większa niż wartość określona dla elementu
<Element>
(określona w kroku 2). Jeśli długość elementu przekracza tę wartość, jest to przyczyną błędu.Oto przykładowy ładunek:
<company> <name>Google</name> <country>USA</country> </company>
Dane XML pokazane powyżej zawierają w wierszu 1 element rdzeniowy o nazwie
company
, który ma 7 znaków. Długość elementu jest większa niż 5 (wartość określona dla elementu<Element>
), więc występuje ten błąd:XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Element name length exceeded 5 at line 1(possibly around char 9)
Rozdzielczość
Jeśli zasada XMLThreadProtection ma chronić przed ładunkami o nazwach elementów przekraczających zdefiniowaną wartość, należy spodziewać się komunikatu o błędzie. W takim przypadku nie musisz nic więcej robić.
Jeśli jednak uznasz, że dłuższe elementy można określić w ładunku bez żadnych konsekwencji, zmień wartość <Element>
na odpowiednią wartość zgodnie ze swoimi wymaganiami.
Jeśli np. uważasz, że możesz zezwolić na elementy o długości do 10 znaków, zmodyfikuj zasadę XMLThreatProtection w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>5</Attribute>
<NamespacePrefix>10</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>5</NodeDepth>
<AttributeCountPerElement>2</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>15</Text>
<Attribute>10</Attribute>
<NamespaceURI>10</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
ChildCountExceeded
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition policy_name: Execution failed. reason: XMLThreatProtection stepDefinition policy_name: Children count exceeded num at line num(possibly around char num)", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Children count exceeded 3 at line 5(possibly around char 89)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Przyczyna
Ten błąd występuje, jeśli wejściowy ładunek komunikatu określony przez element <Source>
zawiera element XML, który zawiera więcej elementów podrzędnych niż wartość określona w elemencie <ChildCount>
zasady.
Jeśli na przykład element <ChildCount>
to 3, ale wejściowy ładunek XML zawiera element z większą liczbą elementów podrzędnych, pojawia się ten błąd.
Diagnostyka
Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono liczbę wpisów. Na przykład w tym komunikacie o błędzie nazwa zasady to
XML-Threat-Protection-1
, a numer wiersza w pliku danych to5
:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Children count exceeded 3 at line 5(possibly around char 89)"
Sprawdź zasadę, która nie przeszła weryfikacji (zidentyfikowaną w kroku 1), i zapisz wartość określoną w elemencie
<ChildCount>
.W poniższym przykładzie zasady
<ChildCount>
ma wartość3
(pamiętaj, że do tego limitu wliczają się komentarze, elementy uwzględnione i inne elementy):<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>5</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>request</Source> <StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Sprawdź konkretny wiersz (zidentyfikowany w kroku 1) z danymi wejściowymi i sprawdź, czy liczba elementów podrzędnych (w tym wszystkie komentarze itp.) w danych wejściowych jest większa niż wartość określona dla elementu
<ChildCount>
(zidentyfikowanego w kroku 2). Jeśli liczba elementów podrzędnych przekracza liczbę podanych elementów, jest to przyczyną błędu.Oto przykładowy ładunek danych wejściowych:
<movie> <title>Jurassic Park</title> <language>English</language> <country>USA</country> <director>Steven Spielberg</director> </movie>
W pokazanym powyżej pliku XML wiersz 5 zawiera czwarty element podrzędny
<director>
elementu głównego<movie>
. Ponieważ liczba elementów podrzędnych w wejściowym ładunku XML jest większa niż 3 (wartość określona dla elementu<ChildCount>
), występuje ten błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Children count exceeded 3 at line 5(possibly around char 89)
Rozdzielczość
Jeśli zasada XMLThreatProtection ma chronić przed ładunkami, których liczba elementów podrzędnych przekracza określony próg, to komunikat o błędzie jest oczekiwany. W takim przypadku nie musisz podejmować żadnych dodatkowych działań.
Jeśli jednak uznasz, że w danych ładunku można uwzględnić większą liczbę elementów podrzędnych (w tym komentarzy itp.) bez żadnych konsekwencji, zmień wartość parametru <ChildCount>
na odpowiednią, biorąc pod uwagę swoje wymagania.
Jeśli na przykład uważasz, że możesz zezwolić na maksymalnie 10 elementów podrzędnych, zmodyfikuj zasadę XMLThreatProtection w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>5</Attribute>
<NamespacePrefix>10</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>5</NodeDepth>
<AttributeCountPerElement>2</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">10</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>15</Text>
<Attribute>10</Attribute>
<NamespaceURI>10</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
NodeDepthExceeded
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]: Node depth exceeded [num] at line [num](possibly around char [num])", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Node depth exceeded 5 at line 6(possibly around char 110)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Przyczyna
Ten błąd występuje, jeśli ładunek wiadomości wejściowej określony przez element <Source>
zawiera dokument XML, w którym hierarchia węzłów przekracza liczbę określoną w elemencie <NodeDepth>
w zasadach XMLThreatProtection.
Jeśli na przykład element <NodeDepth>
jest określony w zasadach jako 4
, ale głębokość węzła w danych wejściowych przekracza wartość 4
, pojawia się ten błąd.
Diagnostyka
Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym została przekroczona głębokość węzła. Na przykład w tym komunikacie o błędzie nazwa zasady to
XML-Threat-Protection-1
, a numer wiersza w pliku danych to6
:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Node depth exceeded 5 at line 6(possibly around char 109)
Sprawdź błędną zasadę XMLThreatProtection (określoną w kroku 1) i zanotuj wartość określoną w elemencie
<NodeDepth>
.W tym przykładzie reguły XMLThreatProtection wartość
<NodeDepth>
jest ustawiona na5
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>5</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>request</Source> <StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Sprawdź konkretny numer wiersza (określony w kroku 1) z danymi wejściowymi i sprawdź, czy głębokość węzła podana w tym miejscu jest większa niż liczba podana w elemencie
<NodeDepth>
(określonym w kroku 2). Jeśli poziom elementów podrzędnych XML przekracza liczbę, to właśnie jest przyczyną błędu.Oto przykładowy ładunek wejściowy:
<hellos> <hello1> <wave1> <wave2> <wave3> <wave4> <wave5>wave</wave5> </wave4> </wave3> </wave2> </wave1> </hello1> <hello2>world2</hello2> <hello3>world3</hello3> <hello4>world4</hello4> <hello5>world5</hello5> <hello6>world6</hello6> </hellos>
Głębokość węzła widoczna powyżej w wierszu 6 to 6
.
Ponieważ głębokość węzła jest większa niż 5 (wartość określona dla elementu<NodeDepth>
), występuje ten błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Node depth exceeded 5 at line 6(possibly around char 109)
Rozdzielczość
Jeśli zasada XMLThreatProtection ma chronić przed ładunkami z określonym progiem głębokości węzła, komunikat o błędzie jest oczekiwany. W tym przypadku nie musisz nic robić.
Jeśli jednak uznasz, że większa głębokość węzła może być dozwolona, zmień wartość parametru <NodeDepth>
na odpowiednią wartość w zależności od wymagań.
Jeśli na przykład uważasz, że maksymalna głębokość węzłów to 10, zmodyfikuj zasadę w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>5</Attribute>
<NamespacePrefix>10</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>10</NodeDepth>
<AttributeCountPerElement>2</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>15</Text>
<Attribute>10</Attribute>
<NamespaceURI>10</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
AttributeCountExceeded
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]: Attribute count exceeded [num] at line [num](possibly around char [num])", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Attribute count exceeded 2 at line 3(possibly around char 105)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Przyczyna
Ten błąd występuje, jeśli wejściowy ładunek komunikatu określony przez element <Source>
zasady XMLThreatProtection zawiera dokument XML, w którym liczba atrybutów jednego elementu przekracza liczbę określoną w elemencie <AttributeCountPerElement>
zasady.
Jeśli na przykład element <AttributeCountPerElement>
jest określony jako 2
w zasadach XMLThreatProtection, ale ładunek wejściowy zawiera element z większą liczbą niż 2 atrybuty, pojawia się ten błąd.
Diagnostyka
Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym została przekroczona liczba atrybutów. Na przykład w tym komunikacie o błędzie nazwa zasady to
XMLThreat-Protection-1
, a numer wiersza w pliku danych to3
:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute count exceeded 2 at line 3(possibly around char 105)
Sprawdź zasadę, która nie przeszła weryfikacji (zidentyfikowaną w kroku 1), i zapisz wartość określoną w elemencie
<AttributeCountPerElement>
.W tym przykładzie zasad
<AttributeCountPerElement>
ma wartość2
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>5</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>request</Source> <StructureLimits> <NodeDepth>10</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Sprawdź konkretny numer wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy liczba podanych atrybutów przekracza liczbę określoną w elemencie
<AttributeCountPerElementh>
(określonym w kroku 2). Jeśli liczba atrybutów przekracza tę wartość, jest to przyczyną błędu.Oto przykładowy ładunek:
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book category="cooking" cuisine="Indian" lang="en"> <title>Easy Indian Cooking</title> <author>Suneeta</author> <year>2004</year> <price>300.00</price> </book> </bookstore>
Ładunek XML pokazany powyżej w wierszu 3 zawiera element z 3 atrybutami. Ponieważ liczba atrybutów jest większa niż 2 (wartość określona dla elementu
<AttributeCountPerElement>
), pojawia się ten błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute count exceeded 2 at line 3(possibly around char 105)
Rozdzielczość
Jeśli zasada XMLThreatProtection ma chronić przed ładunkami przekraczającymi określoną liczbę atrybutów, komunikat o błędzie jest oczekiwany. W tym przypadku nie musisz nic robić.
Jeśli jednak uznasz, że można dopuścić większą liczbę atrybutów, zmień wartość parametru <AttributeCountPerElement>
na odpowiednią wartość zgodnie ze swoimi wymaganiami.
Jeśli na przykład uważasz, że możesz zezwolić na maksymalnie 5 atrybutów na element, zmodyfikuj zasadę w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>5</Attribute>
<NamespacePrefix>10</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>10</NodeDepth>
<AttributeCountPerElement>5</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>15</Text>
<Attribute>10</Attribute>
<NamespaceURI>10</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
AttributeNameExceeded
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]: Attribute name length exceeded [num] at line [num](possibly around char [num])", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Attribute name length exceeded 5 at line 3(possibly around char 105)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Przyczyna
Ten błąd występuje, jeśli ładunek wiadomości wejściowej określony przez element <Source>
w zasadach XMLThreatProtection zawiera dokument XML, w którym nazwa atrybutu przekracza liczbę znaków określoną w podrzędnym elemencie <Attribute>
elementu <NameLimits>
w zasadach.
Jeśli na przykład element <Attribute>
jest określony w zasadach jako 5
, ale strumień danych wejściowych zawiera nazwę atrybutu składającą się z więcej niż 5 znaków, pojawia się ten błąd.
Diagnostyka
Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym została przekroczona długość nazwy atrybutu. Na przykład w tym komunikacie o błędzie nazwa zasady to
XML-Threat-Protection-1
, a numer wiersza w pliku danych to3
:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute name length exceeded 5 at line 3(possibly around char 105)
Sprawdź zasadę, która nie przeszła weryfikacji (zidentyfikowaną w kroku 1), i zapisz wartość określoną w elemencie
<Attribute>
.W tym przykładzie reguły XMLThreatProtection wartość
<Attribute>
jest ustawiona na5
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>5</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>request</Source> <StructureLimits> <NodeDepth>10</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Sprawdź konkretny wiersz (zidentyfikowany w kroku 1) w danych wejściowych i sprawdź, czy długość atrybutu ma więcej znaków niż liczba podana w elemencie
<Attribute>
(zidentyfikowanym w kroku 2). Jeśli liczba znaków przekracza wartość atrybutu, jest to przyczyną błędu.Oto przykładowy ładunek:
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book category="cooking" cuisine="Indian" lang="en"> <title>Easy Indian Cooking</title> <author>Suneeta</author> <year>2004</year> <price>300.00</price> </book> </bookstore>
Ładunek XML pokazany powyżej w wierszu 3 ma dwa atrybuty
category
icuisine
o długości odpowiednio 8 i 7 znaków.
Ponieważ długość nazwy atrybutu jest większa niż 5 (wartość określona dla elementu<Attribute>
), występuje ten błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute name length exceeded 5 at line 3(possibly around char 105)
Rozdzielczość
Jeśli zasada XMLThreatProtection ma chronić przed ładunkami, których długość przekracza określoną długość nazwy atrybutu, należy spodziewać się komunikatu o błędzie. W tym przypadku nie musisz nic robić.
Jeśli jednak uznasz, że dłuższa nazwa atrybutu może być dozwolona, zmień wartość <Attribute>
na odpowiednią wartość w zależności od swoich wymagań.
Jeśli na przykład uważasz, że nazwy atrybutów mogą mieć maksymalnie 10 znaków, zmodyfikuj zasadę w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>10</Attribute>
<NamespacePrefix>10</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>10</NodeDepth>
<AttributeCountPerElement>5</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>15</Text>
<Attribute>10</Attribute>
<NamespaceURI>10</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
AttributeValueExceeded
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]: Attribute value length exceeded [num] at line [num](possibly around char [num])", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Attribute value length exceeded 10 at line 3(possibly around char 111)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Przyczyna
Ten błąd występuje, gdy ładunek wiadomości wejściowej określony przez element <Source>
w zasadach zawiera dokument XML, w którym wartość atrybutu przekracza liczbę znaków określoną w elementzie podrzędnym <Attribute>
elementu <ValueLimits>
.
Jeśli na przykład element <Attribute>
jest określony jako 10
w zasadach XMLThreatProtection, ale ładunek wejściowy ma wartość atrybutu zawierającą więcej niż 10 znaków, pojawia się ten błąd.
Diagnostyka
W komunikacie o błędzie sprawdź nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono liczbę atrybutów. Na przykład w tym komunikacie o błędzie nazwa zasady to
XML-Threat-Protection-1
, a numer wiersza w ładunku to3
:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute value length exceeded 10 at line 3(possibly around char 111)
Sprawdź zasady, które nie przeszły weryfikacji (zidentyfikowane w kroku 1), i zapisz wartość określoną w elementach podrzędnych
<Attribute>
elementu<ValueLimits>
.W tym przykładzie reguły XMLThreatProtection wartość
<Attribute>
jest ustawiona na 10:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>5</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>request</Source> <StructureLimits> <NodeDepth>10</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Sprawdź konkretny numer wiersza (zidentyfikowany w kroku 1) w danych wejściowych i sprawdź, czy długość wartości atrybutu ma więcej znaków niż liczba określona w elemencie
<Attribute>
(zidentyfikowanym w kroku 2). Jeśli liczba znaków przekracza wartość atrybutu, jest to przyczyną błędu.Oto przykładowy ładunek wejściowy:
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book category="cooking" cuisine="South Indian" lang="en"> <title>Easy Indian Cooking</title> <author>Suneeta</author> <year>2004</year> <price>300.00</price> </book> </bookstore>
Dane XML pokazane powyżej w wierszu 3 zawierają atrybut (cuisine) o długości wartości 12 znaków. Ponieważ długość wartości atrybutu jest większa niż 10 (wartość określona dla elementu
<Attribute>
), pojawia się ten błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute value length exceeded 10 at line 3(possibly around char 111)
Rozdzielczość
Jeśli zasada XMLThreatProtection ma chronić przed ładunkami, których długość przekracza określoną długość atrybutu, to komunikat o błędzie jest oczekiwany. W tym przypadku nie musisz nic robić.
Jeśli jednak uznasz, że dłuższe wartości atrybutów mogą być dozwolone, zmień element podrzędny <Attribute>
elementu <ValueLimits>
, aby nadać mu odpowiednią wartość zgodnie z Twoimi wymaganiami.
Jeśli na przykład uważasz, że możesz przypisać wartości mające maksymalnie 15 znaków, zmodyfikuj zasadę w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>10</Attribute>
<NamespacePrefix>10</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>10</NodeDepth>
<AttributeCountPerElement>5</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>15</Text>
<Attribute>15</Attribute>
<NamespaceURI>10</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
TextExceeded
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]: Text length exceeded [num] at line [num](possibly around char [num])", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Text length exceeded 15 at line 4(possibly around char 66)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
Przyczyna
Ten błąd występuje, jeśli strumień danych wiadomości wejściowej określony przez element <Source>
polityki XMLThreatProtection zawiera dokument XML, w którym długość tekstu elementu przekracza liczbę znaków określoną w elementzie podrzędnym <Text>
elementu <ValueLimits>
polityki.
Jeśli na przykład element <Text>
jest określony w zasadach jako 15
, ale przesyłany ładunek ma tekst dłuższy niż 15 znaków, pojawia się ten błąd.
Diagnostyka
W komunikacie o błędzie sprawdź nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono liczbę atrybutów. Na przykład w tym komunikacie o błędzie nazwa zasady to
XML-Threat-Protection-1
, a numer wiersza w pliku danych to4
:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Text length exceeded 15 at line 4(possibly around char 66)
Sprawdź zasady, które nie przeszły weryfikacji (zidentyfikowane w kroku 1), i zapisz wartość określoną w elementach podrzędnych
<Text>
elementu<ValueLimits>
.W poniższym przykładzie zasady XMLThreatProtection
<Text>
ma wartość15
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>5</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>request</Source> <StructureLimits> <NodeDepth>10</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Sprawdź konkretny numer wiersza (zidentyfikowany w kroku 1) w danych wejściowych i sprawdź, czy długość wartości atrybutu ma więcej znaków niż liczba określona w elemencie
<Text>
(zidentyfikowanym w kroku 2). Jeśli liczba znaków przekracza wartość atrybutu, jest to przyczyną błędu.<food> <name>Veg Sandwich</name> <price>$5.95</price> <description>Vegetarian Sandwich with onions, tomatoes and lettuce</description> <calories>650</calories> </food>
Dane XML na linii 4 mają 53 znaki. Ponieważ długość wartości atrybutu jest większa niż 15 (wartość określona dla elementu
<Text>
), pojawia się ten błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Text length exceeded 15 at line 4(possibly around char 66)
Rozdzielczość
Jeśli zasada XMLThreatProtection ma chronić przed ładunkiem, który przekracza określoną długość tekstu, należy spodziewać się komunikatu o błędzie. W takim przypadku nie musisz nic więcej robić.
Jeśli jednak uznasz, że dłuższe teksty są dozwolone, zmień <Text>
element podrzędny elementu <ValueLimits>
na odpowiednią wartość zgodnie z wymaganiami.
Jeśli na przykład uważasz, że wartości atrybutów mogą mieć maksymalnie 60 znaków, zmodyfikuj zasadę w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>10</Attribute>
<NamespacePrefix>10</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>10</NodeDepth>
<AttributeCountPerElement>5</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>60</Text>
<Attribute>15</Attribute>
<NamespaceURI>10</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
CommentExceeded
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]: Comment length exceeded [num] at line [num](possibly around char [num])", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Comment length exceeded 10 at line 2(possibly around char 48)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Przyczyna
Ten błąd występuje, jeśli ładunek wiadomości wejściowej określony przez element <Source>
w zasadach XMLThreatProtection zawiera dokument XML, w którym długość komentarza przekracza liczbę znaków określoną w podrzędnym elemencie <Comment>
elementu <ValueLimits>
w zasadach.
Jeśli na przykład element <Comment>
jest określony w zasadach jako 10
, ale strumień danych wejściowych zawiera komentarz o dłuższym niż 10 znaków, to błąd jest zgłaszany.
Diagnostyka
Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono długość komentarza. Na przykład w tym komunikacie o błędzie nazwa zasady to
XML-Threat-Protection-1
, a numer wiersza w pliku danych to2
:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Comment length exceeded 10 at line 2(possibly around char 48)
Sprawdź zasadę z błędami (określoną w kroku 1) i zanotuj wartość określoną w elemencie podrzędnym
<Comment>
elementu<ValueLimits>
.W tym przykładzie reguły XMLThreatProtection wartość
<Comment>
jest ustawiona na10
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>5</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>request</Source> <StructureLimits> <NodeDepth>10</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Sprawdź numer wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy długość komentarza nie zawiera więcej znaków niż liczba określona w elemencie
<Comment>
(podana w kroku 2). Jeśli liczba znaków przekracza wartość atrybutu, jest to przyczyną błędu.Oto przykładowy ładunek wejściowy:
<food> <!--This is somewhat a long comment--> <name>Veg Sandwich</name> <price>$5.95</price> <description>Vegetarian Sandwich with onions, tomatoes and lettuce</description> <calories>650</calories> </food>
Dane XML pokazane powyżej w wierszu 2 zawierają komentarz o długości 31 znaków.
.
Ponieważ długość komentarza przekracza 10 (wartość określona dla elementu<Comment>
), pojawia się ten błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Comment length exceeded 10 at line 2(possibly around char 48)
Rozdzielczość
Jeśli zasada XMLThreatProtection ma chronić przed ładunkami przekraczającymi określoną długość komentarza, komunikat o błędzie jest oczekiwany. W tym przypadku nie musisz nic robić.
Jeśli jednak uznasz, że można używać dłuższego komentarza, zmień <Comment>
element podrzędny elementu<ValueLimits>
na odpowiednią wartość zgodnie z wymaganiami.
Jeśli na przykład uważasz, że wartości atrybutów mogą mieć maksymalnie 40 znaków, zmodyfikuj zasady w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>10</Attribute>
<NamespacePrefix>10</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>10</NodeDepth>
<AttributeCountPerElement>5</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>15</Text>
<Attribute>15</Attribute>
<NamespaceURI>10</NamespaceURI>
<Comment>40</Comment>
<ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
PIDataExceeded
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]: Processing Instruction data length exceeded [num] at line [num](possibly around char [num])", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Processing Instruction data length exceeded 30 at line 2(possibly around char 109)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Przyczyna
Ten błąd występuje, jeśli wejściowy ładunek komunikatu określony przez element <Source>
zasady XMLThreatProtection zawiera dokument XML, w którym instrukcja przetwarzania danych przekracza liczbę znaków określoną w elemencie podrzędnym <ProcessingInstructionData>
elementu <ValueLimits>
zasady.
Jeśli na przykład element <ProcessingInstructionData>
jest określony jako 10
w zasadach XMLThreatProtection, ale ładunek wejściowy zawiera instrukcję przetwarzania zawierającą więcej niż 10 znaków, pojawia się ten błąd.
Diagnostyka
Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono długość instrukcji przetwarzania. Na przykład w tym komunikacie o błędzie nazwa zasady to
XML-Threat-Protection-1
, a numer wiersza w pliku danych to2
:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Processing Instruction data length exceeded 30 at line 2(possibly around char 109)
Sprawdź zasadę z błędami (określoną w kroku 1) i zanotuj wartość określoną w elemencie podrzędnym
<ProcessingInstructionData>
elementu<ValueLimits>
.W tym przykładzie reguły XMLThreatProtection wartość
<ProcessingInstructionData>
jest ustawiona na30
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>5</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>request</Source> <StructureLimits> <NodeDepth>10</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>30</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Sprawdź konkretny numer wiersza (zidentyfikowany w kroku 1) z danymi wejściowymi i sprawdź, czy długość danych instrukcji przetwarzania określonych w tym miejscu zawiera więcej znaków niż liczba podana w elemencie
<ProcessingInstructionData>
(zidentyfikowanym w kroku 2). Jeśli liczba znaków przekracza dane w instrukcji przetwarzania, to jest to przyczyna błędu.Oto przykładowy ładunek:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml-stylesheet type="text/xsl" href="mobilephones.xsl"?> <mobilephones> <mobilephone> <name>iPhone</name> <price>$600</price> </mobilephone> <mobilephone> <name>Samsung</name> <price>$500</price> </mobilephone> </mobilephones>
Dane XML pokazane powyżej w wierszu 1 zawierają element danych instrukcji przetwarzania (
type="text/xsl" href="mobilephones.xsl"?)
o długości 40 znaków.
). Ponieważ ta długość jest większa niż 30 (wartość określona dla elementu<ProcessingInstructionData>
), pojawia się ten błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Processing Instruction data length exceeded 30 at line 2(possibly around char 109)
Rozdzielczość
Jeśli polityka XMLThreatProtection ma chronić przed ładunkami, które przekraczają określoną długość danych instrukcji przetwarzania, należy spodziewać się komunikatu o błędzie. W tym przypadku nie musisz nic robić.
Jeśli jednak uznasz, że dłuższe elementy danych instrukcji przetwarzania mogą być dozwolone, zmień element podrzędny <ProcessingInstructionData>
elementu <ValueLimits>
na odpowiednią wartość zgodnie ze swoimi wymaganiami.
Jeśli na przykład uważasz, że instrukcje przetwarzania danych mogą mieć maksymalnie 50 znaków, zmodyfikuj zasady w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>10</Attribute>
<NamespacePrefix>10</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>10</NodeDepth>
<AttributeCountPerElement>5</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>15</Text>
<Attribute>15</Attribute>
<NamespaceURI>10</NamespaceURI>
<Comment>40</Comment>
<ProcessingInstructionData>50</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
PITargetExceeded
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]: Processing Instruction target length exceeded [num] at line [num](possibly around char [num])", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Processing Instruction target length exceeded 10 at line 2(possibly around char 114)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Przyczyna
Ten błąd występuje, jeśli ładunek wiadomości wejściowej określony przez element <Source>
polityki XMLThreatProtection zawiera dokument XML, w którym docelowa instrukcja procesu przekracza liczbę znaków określoną w elementzie podrzędnym <ProcessingInstructionTarget>
elementu <NameLimits>
polityki.
Jeśli na przykład element <ProcessingInstructionTarget>
jest określony jako 10
w zasadach XMLThreatProtection, ale ładunek wejściowy ma docelowe instrukcje procesu zawierające więcej niż 10 znaków, pojawia się ten błąd.
Diagnostyka
Sprawdź komunikat o błędzie, aby zidentyfikować nazwę reguły XMLThreatProtection i numer wiersza, w którym przekroczono liczbę docelową instrukcji przetwarzania. Na przykład w tym komunikacie o błędzie nazwa zasady to
XML-Threat-Protection-1
, a numer wiersza w pliku danych to1
:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Processing Instruction target length exceeded 10 at line 2(possibly around char 114)
Sprawdź zasady XMLThreatProtection, które nie przeszły weryfikacji (zidentyfikowane w kroku 1), i zanotuj wartość określoną w elemencie podrzędnym
<ProcessingInstructionTarget>
elementu<NameLimits
>.W tym przykładzie reguły XMLThreatProtection wartość
<ProcessingInstructionTarget>
jest ustawiona na10
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>request</Source> <StructureLimits> <NodeDepth>10</NodeDepth> <AttributeCountPerElement>5</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>20</Text> <Attribute>15</Attribute> <NamespaceURI>40</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>30</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Sprawdź konkretny numer wiersza (określony w kroku 1) z danymi wejściowymi i sprawdź, czy długość określonego tam celu instrukcji przetwarzania zawiera więcej znaków niż liczba określona w elemencie
<ProcessingInstructionTarget>
(określonym w kroku 2). Jeśli liczba znaków przekracza docelowy limit rozmiaru, jest to przyczyną błędu.Oto przykładowy ładunek wejściowy:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml-stylesheet type="text/xsl" href="mobilephones.xsl"?> <mobilephones> <mobilephone> <name>iPhone</name> <price>$600</price> </mobilephone> <mobilephone> <name>Samsung</name> <price>$500</price> </mobilephone> </mobilephones>
Ładunek XML pokazany powyżej w wierszu 2 ma nazwę celu instrukcji przetwarzania „
xml-stylesheet"
” o długości 14 znaków. Nazwa celu instrukcji przetwarzania jest dłuższa niż 10 (wartość określona dla elementu<ProcessingInstructionTarget>
), więc pojawia się ten błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Processing Instruction target length exceeded 10 at line 2(possibly around char 114)
Rozdzielczość
Jeśli zasada XMLThreatProtection ma chronić przed ładunkami, które przekraczają określoną długość docelową instrukcji procesu, komunikat o błędzie jest oczekiwany. W tym przypadku nie musisz nic robić.
Jeśli jednak uznasz, że instrukcja procesu może być dłuższa, zmień element podrzędny <ProcessingInstructionTarget>
elementu <NameLimits>
na odpowiednią wartość zgodnie ze swoimi wymaganiami.
Jeśli na przykład uważasz, że instrukcje procesu mogą mieć maksymalnie 25 znaków, zmodyfikuj zasadę w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>5</Attribute>
<NamespacePrefix>15</NamespacePrefix>
<ProcessingInstructionTarget>25</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>10</NodeDepth>
<AttributeCountPerElement>2</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>15</Text>
<Attribute>10</Attribute>
<NamespaceURI>40</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
NSURIExceeded
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]: Namespace uri length length exceeded [num] at line [num](possibly around char [num])", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Namespace uri length exceeded 10 at line 2(possibly around char 97)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Przyczyna
Ten błąd występuje, jeśli ładunek wiadomości wejściowej określony przez element <Source>
w zasadach XMLThreatProtection zawiera dokument XML, w którym URI NameSpace przekracza liczbę znaków określoną w podrzędnym elemencie <NamespaceURI>
elementu <ValueLimits>
zasad.
Jeśli na przykład element <NamespaceURI>
jest określony w zasadach jako 10
, ale ładunek wejściowy zawiera identyfikator URI przestrzeni nazw o dłużości większej niż 10 znaków, pojawia się ten błąd.
Diagnostyka
Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono długość identyfikatora URI przestrzeni nazw. Na przykład w tym komunikacie o błędzie nazwa zasady to
XML-Threat-Protection-1
, a numer wiersza w pliku danych to2
:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace uri length exceeded 10 at line 2(possibly around char 97)
Sprawdź zasadę z błędami (określoną w kroku 1) i zanotuj wartość określoną w elemencie podrzędnym
<NamespaceURI>
elementu<ValueLimits
>.W tym przykładzie reguły XMLThreatProtection wartość
<NamespaceURI>
jest ustawiona na10
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>5</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>request</Source> <StructureLimits> <NodeDepth>10</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Sprawdź konkretny wiersz (zidentyfikowany w kroku 1) z danymi wejściowymi i sprawdź, czy długość identyfikatora URI przestrzeni nazw ma więcej znaków niż liczba podana w elemencie
<NamespaceURI>
(zidentyfikowanym w kroku 2). Jeśli liczba znaków przekracza długość identyfikatora URI przestrzeni nazw, jest to przyczyna błędu.Oto przykładowy ładunek:
<?xml version = "1.0" encoding = "UTF-8"?> <profile:user xmlns:profile = "www.google.com/profile"> <profile:name>Rama Krishna</profile:name> <profile:company>Google</profile:company> <profile:phone>(91) 9876543210</profile:phone> </profile:user>
Dane XML pokazane powyżej na linii 2 mają identyfikator URI przestrzeni nazw www.google.com/profile o długości 22 znaki. Identyfikator URI przestrzeni nazw jest dłuższy niż 10 (wartość określona dla elementu
<NamespaceURI>
), więc pojawia się ten błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace uri length exceeded 10 at line 2(possibly around char 99)
Rozdzielczość
Jeśli zasada XMLThreatProtection ma chronić przed ładunkami, które przekraczają określoną długość URI przestrzeni nazw, to wiadomość o błędzie jest oczekiwana. W tym przypadku nie musisz nic robić.
Jeśli jednak stwierdzisz, że można używać dłuższego identyfikatora URI przestrzeni nazw, zmień element podrzędny <NamespaceURI>
elementu <ValueLimits>
na odpowiednią wartość zgodnie z wymaganiami.
Jeśli na przykład uważasz, że długość URI przestrzeni nazw może wynosić maksymalnie 30 znaków, zmodyfikuj zasadę w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>5</Attribute>
<NamespacePrefix>10</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>10</NodeDepth>
<AttributeCountPerElement>2</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>15</Text>
<Attribute>10</Attribute>
<NamespaceURI>30</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
NSPrefixExceeded
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]: Namespace prefix length exceeded [num] at line [num](possibly around char [num])", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Namespace prefix length exceeded 10 at line 2(possibly around char 105)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Przyczyna
Ten błąd występuje, jeśli ładunek wiadomości wejściowej określony przez element <Source>
zawiera dokument XML, w którym prefiks przestrzeni nazw przekracza liczbę znaków określoną w elemencie podrzędnym <NamespacePrefix>
elementu <NameLimits>
polityki.
Jeśli na przykład w zasadach XMLThreatProtection element <NamespacePrefix>
ma wartość 10
, ale dane wejściowe zawierają prefiks przestrzeni nazw o dłużości większej niż 10 znaków, pojawia się ten błąd.
Diagnostyka
Sprawdź komunikat o błędzie, aby znaleźć nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono długość prefiksu URI przestrzeni nazw. Na przykład w tym komunikacie o błędzie nazwa zasady to
XML-Threat-Protection-1
, a numer wiersza w pliku danych to2
:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace prefix length exceeded 10 at line 2(possibly around char 105)
Sprawdź zasady, które nie przeszły weryfikacji (zidentyfikowane w kroku 1), i zapisz wartość określoną w podrzędnym elemencie
<NamespacePrefix>
elementu<NameLimits
>.W tym przykładzie reguły XMLThreatProtection wartość
<NamespacePrefix>
jest ustawiona na10
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>request</Source> <StructureLimits> <NodeDepth>10</NodeDepth> <AttributeCountPerElement>5</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>20</Text> <Attribute>15</Attribute> <NamespaceURI>40</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>30</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Sprawdź konkretny numer wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy długość prefiksu przestrzeni nazw zawiera więcej znaków niż liczba znaków określona w elemencie
<NamespacePrefix>
(określony w kroku 2). Jeśli liczba znaków przekracza limit prefiksu przestrzeni nazw, jest to przyczyną błędu.Oto przykładowy ładunek wejściowy:
<?xml version = "1.0" encoding = "UTF-8"?> <userprofile:user xmlns:userprofile = "www.googlecom/profile"> <userprofile:name>Rama Krishna</userprofile:name> <userprofile:company>Google</userprofile:company> <userprofile:phone>(011) 123-4567</userprofile:phone> </userprofile:user>
Ładunek XML pokazany powyżej w wierszu 2 ma prefiks przestrzeni nazw
userprofile
o długości 11 znaków. Długość prefiksu identyfikatora URI przestrzeni nazw jest większa niż 10 (wartość podana dla elementu<NamespacePrefix>
), więc pojawia się ten błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace prefix length exceeded 10 at line 2(possibly around char 105)
Rozdzielczość
Jeśli zasada XMLThreatProtection ma chronić przed ładunkami, które przekraczają określoną długość prefiksu URI przestrzeni nazw, należy spodziewać się komunikatu o błędzie. W tym przypadku nie musisz nic robić.
Jeśli jednak stwierdzisz, że może być dozwolony dłuższy prefiks identyfikatora URI przestrzeni nazw, zmień element podrzędny <NamespacePrefix>
elementu <NameLimits>
na odpowiednią wartość zgodnie z wymaganiami.
Jeśli na przykład uważasz, że prefiks URI przestrzeni nazw może mieć maksymalnie 15 znaków, zmodyfikuj zasadę w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>5</Attribute>
<NamespacePrefix>15</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>10</NodeDepth>
<AttributeCountPerElement>2</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>15</Text>
<Attribute>10</Attribute>
<NamespaceURI>40</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
NSCountExceeded
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]: Namespace count exceeded [num] at line [num](possibly around char [num])", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace count exceeded 3 at line 2(possibly around char 234)",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Przyczyna
Ten błąd występuje, jeśli dane wejściowe wiadomości określone przez element <Source>
w zasadach XMLThreatProtection zawierają dokument XML, w którym liczba przestrzeni nazw użytych w pojedynczym elemencie przekracza liczbę określoną w podrzędnym elemencie <NamespaceCountPerElement>
elementu <StructureLimits>
zasad.
Jeśli na przykład element <NamespaceCountPerElement>
jest określony w zasadach jako 3
, ale wejściowy ładunek ma element z większą liczbą niż 3 przestrzeni nazw, pojawia się ten błąd.
Diagnostyka
Sprawdź komunikat o błędzie, aby znaleźć nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono liczbę przestrzeni nazw. Na przykład w tym komunikacie o błędzie nazwa zasady to
XMLThreat-Protection-1
, a numer wiersza w pliku danych to2
:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace count exceeded 3 at line 2(possibly around char 234)
Sprawdź zasady, które nie przeszły weryfikacji (zidentyfikowane w kroku 1), i zapisz wartość określoną w podrzędnym elemencie
<NamespaceCountPerElement>
elementu<StructureLimits
>.W poniższym przykładzie zasady XMLThreatProtection
<NamespaceCountPerElement>
ma wartość3
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>request</Source> <StructureLimits> <NodeDepth>10</NodeDepth> <AttributeCountPerElement>5</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>20</Text> <Attribute>15</Attribute> <NamespaceURI>40</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>30</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Sprawdź konkretny numer wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy liczba przestrzeni nazw podanych w nim dla pojedynczego elementu nie jest większa niż liczba określona w elemencie
<NamespaceCountPerElement>
(określony w kroku 2). Jeśli liczba przestrzeni nazw przekracza limit liczby przestrzeni nazw na element, jest to przyczyną błędu.Oto przykładowy ładunek:
<?xml version = "1.0" encoding = "UTF-8"?> <hellos xmlns:h="https://www.w3schools.com/greeting1" xmlns:a="https://www.w3schools.com/greeting2" xmlns:b="https://www.w3schols.com/greeting3" xmlns:c="https://www.w3schools.com/greeting4"> <a:hello1>world1</a:hello1> <b:hello2>world2</b:hello2> <c:hello2>world2</c:hello2> <h:hello2>world2</h:hello2> </hellos>
Dane XML pokazane powyżej na linii 2 zawierają więcej niż 3 przestrzenie nazw. Ponieważ liczba przestrzeni nazw jest większa niż 3 (wartość określona dla elementu
<NamespaceCountPerElement>
), pojawia się ten komunikat o błędzie:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace count exceeded 3 at line 2(possibly around char 234)
Rozdzielczość
Jeśli zasada XMLThreatProtection ma na celu ochronę przed ładunkami przekraczającymi określoną liczbę przestrzeni nazw w jednym elemencie, powinien pojawić się komunikat o błędzie. W takim przypadku nie musisz nic więcej robić.
Jeśli jednak uznasz, że można dopuścić większą liczbę przestrzeni nazw, zmień element podrzędny <NamespaceCountPerElement>
elementu <StructureLimits>
na odpowiednią wartość zgodnie ze swoimi wymaganiami.
Jeśli na przykład uważasz, że w jednym elemencie możesz mieć maksymalnie 5 przestrzeni nazw, zmodyfikuj zasadę w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>10</Attribute>
<NamespacePrefix>10</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>10</NodeDepth>
<AttributeCountPerElement>5</AttributeCountPerElement>
<NamespaceCountPerElement>5</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>20</Text>
<Attribute>15</Attribute>
<NamespaceURI>40</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>30</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
InvalidXMLPayload
Kod błędu
steps.xmlthreatprotection.ExecutionFailed
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. Reason: [error_description]", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: Syntax error while parsing XML prologue",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
Przyczyna
Ten błąd występuje, gdy ładunek wiadomości wejściowej określony przez element <Source>
zasady XMLProtectionPolicy nie jest prawidłowym dokumentem XML.
Diagnostyka
Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady, w której wystąpił błąd. W tym przykładzie nazwa zasady to
XML-Threat-Protection-1
.XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: Syntax error while parsing XML prologue
Sprawdź ładunek wejściowy i sprawdź, czy przekazany w ładunku dokument XML jest prawidłowo sformatowany.
Oto przykładowy ładunek:
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book category="cooking"> <title lang="en">Easy Indian Cooking</title> <author>Suneeta</author> <year>2004</year> <price>300.00</price> </book> <bookstore>
W przedstawionym powyżej pliku danych XML wiersz 9 nie zamyka prawidłowo elementu głównego, ponieważ brakuje znaku
/
. Ponieważ nie jest to poprawnie sformatowany kod XML, pojawia się błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: Syntax error while parsing XML prologue
Rozdzielczość
Upewnij się, że prawidłowy ładunek danych XML jest przekazywany do dowolnego serwera proxy interfejsu API, który zawiera zasadę XMLThreatProtection.
Aby naprawić opisany powyżej błąd przykładowy, zmodyfikuj wejściowy ładunek XML w ten sposób:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Easy Indian Cooking
<author>Suneeta</author>
<year>2004</year>
<price>300.00</price>
</book>
</bookstore>
SourceUnavailable
Kod błędu
steps.xmlthreatprotection.SourceUnavailable
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition[policy_name]: Source[var_name] is not available" "detail": { "errorcode": "steps.xmlthreatprotection.SourceUnavailable" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Source requests is not available",
"detail": {
"errorcode": "steps.xmlthreatprotection.SourceUnavailable"
}
}
}
Przyczyna
Ten błąd występuje, jeśli zmienna message określona w elemencie <Source>
zasady XMLThreatProtection to:
- Poza zakresem (niedostępne w konkretnym procesie, w którym są realizowane zasady)
- nie jest jedną z prawidłowych wartości
request
,response
lubmessage
;
Ten błąd może wystąpić np. wtedy, gdy element <Source>
w zasadzie ma wartość zmiennej, która nie istnieje w przepływie, w którym jest wykonywana zasada.
Diagnostyka
Z komunikatu o błędzie ustal nazwę zasady XMLThreatProtection i nazwę zmiennej Source. Na przykład w tym komunikacie o błędzie nazwa zasady XMLThreatProtection to
XML-Threat-Protection-1
, a wartość zmiennej Source torequests:
.XMLThreatProtection stepDefinition XML-Threat-Protection-1: Source requests is not available
Sprawdź zasady XMLThreatProtection, które nie przeszły weryfikacji, i wartość elementu
<Source>
wskazanego w kroku 1.W tym przykładzie reguły XMLThreatProtection element
<Source>
ma wartośćrequests
.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>requests</Source> <StructureLimits> <NodeDepth>10</NodeDepth> <AttributeCountPerElement>5</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>20</Text> <Attribute>15</Attribute> <NamespaceURI>40</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>30</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Prawidłowe wartości elementu
<Source>
torequest
,response
lubmessage.
. Ponieważrequests
nie jest prawidłową wartością i nie występuje w przepływie, w którym jest wykonywana zasada, pojawia się błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Source requests is not available
Rozdzielczość
Upewnij się, że zmienna ustawiona w elemencie <Source>
w zasadach XMLThreatProtection, które nie działają prawidłowo, ma wartość request
, response
lub message
i występuje w przepływie, w którym działają zasady.
Aby poprawić przykładową zasadę widoczną powyżej, możesz zmodyfikować element <Source>
, tak aby korzystał ze zmiennej request
, ponieważ występuje ona w przepływie żądania:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>10</Attribute>
<NamespacePrefix>10</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>request</Source>
<StructureLimits>
<NodeDepth>10</NodeDepth>
<AttributeCountPerElement>5</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>20</Text>
<Attribute>15</Attribute>
<NamespaceURI>40</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>30</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
NonMessageVariable
Kod błędu
steps.xmlthreatprotection.NonMessageVariable
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "Variable var_name does not resolve to a Message" "detail": { "errorcode": "steps.xmlthreatprotection.NonMessageVariable" } } }
Przykładowa treść odpowiedzi na błąd
{
"fault": {
"faultstring": "Variable message.content does not resolve to a Message",
"detail": {
"errorcode": "steps.xmlthreatprotection.NonMessageVariable"
}
}
}
Przyczyna
Ten błąd występuje, gdy element <Source>
w zasadzie XMLThreatProtection ma wartość zmiennej, która nie jest typu Message.
Zmienne typu message reprezentują całe żądania i odpowiedzi HTTP. Wbudowane zmienne przepływu Apigee Edge request
, response
i message
są typu Wiadomość. Więcej informacji o zmiennych wiadomości znajdziesz w artykule Informacje o zmiennych.
Diagnostyka
Z komunikatu o błędzie ustal nazwę zmiennej, która jest interpretowana jako zmienna typu Message. Na przykład w tym komunikacie o błędzie nazwa zmiennej to
message.content
Variable message.content does not resolve to a Message
Sprawdź wszystkie zasady XMLThreadProtection w serwerze proxy interfejsu API, w których wystąpił błąd, i zidentyfikuj konkretną zasadę XMLThreadProtection, w której element
<Source>
ma nazwę zmiennej określoną w kroku 1 opisanym powyżej.W poniższym przykładzie zasady XMLThreatProtection
<Source>
ma wartośćmessage.content
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection-1</DisplayName> <Properties/> <NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits> <Source>message.content</Source> <StructureLimits> <NodeDepth>10</NodeDepth> <AttributeCountPerElement>5</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits> <ValueLimits> <Text>20</Text> <Attribute>15</Attribute> <NamespaceURI>40</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>30</ProcessingInstructionData> </ValueLimits> </XMLThreatProtection>
Zmienne
message.content
nie jest typu Message, dlatego pojawia się błąd:Variable message.content does not resolve to a Message
Rozdzielczość
Upewnij się, że element <Source>
w nieudanej regule XMLThreatProtection jest ustawiony na zmienną przepływu typu Message, która istnieje w przepływie, w którym działa zasada.
Aby poprawić zasady, możesz zmodyfikować element <Source>
, aby określić zmienną typu Message. Na przykład w przypadku nieudanej ochrony przed zagrożeniami w formacie XML możesz określić element <Source>
jako message
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
<DisplayName>XML Threat Protection-1</DisplayName>
<Properties/>
<NameLimits>
<Element>10</Element>
<Attribute>10</Attribute>
<NamespacePrefix>10</NamespacePrefix>
<ProcessingInstructionTarget>10</ProcessingInstructionTarget>
</NameLimits>
<Source>message</Source>
<StructureLimits>
<NodeDepth>10</NodeDepth>
<AttributeCountPerElement>5</AttributeCountPerElement>
<NamespaceCountPerElement>3</NamespaceCountPerElement>
<ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
<ValueLimits>
<Text>20</Text>
<Attribute>15</Attribute>
<NamespaceURI>40</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>30</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>