Wyświetlasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
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 znaków w tagu XML. |
ChildCountExceeded | Przekroczono maksymalną dozwoloną liczbę elementów podrzędnych w ładunku XML. |
NodeDepthExceeded | Maksymalna głębia elementów XML dozwolonych w ładunku XML została przekroczona. |
AttributeCountExceeded | Przekroczono maksymalną liczbę atrybutów w pojedynczym elemencie. |
AttributeNameExceeded | Maksymalna dozwolona długość nazwy atrybutu została przekroczona. |
Wartość atrybutu przekroczona | Przekroczona maksymalna dopuszczalna długość wartości atrybutu. |
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 | Wejściowy ładunek XML jest nieprawidłowy. |
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 zasadach 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ę, która nie przeszła weryfikacji (zidentyfikowaną w kroku 1), i zapisz wartość określoną w elemencie
<Element>
.Na przykład w poniższej zasadzie XMLThreatProtection wartość
<Element>
ma wartość5
:<?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 (zidentyfikowany w kroku 1) z danych wejściowych i sprawdź, czy długość elementu na tym wierszu jest większa niż wartość określona dla elementu
<Element>
(zidentyfikowanego w kroku 2). Jeśli długość elementu jest większa od tej wartości, to właśnie jest 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ć ładunki o nazwach elementów przekraczających zdefiniowaną wartość, powinien pojawić się komunikat o błędzie. W takim przypadku nie musisz nic więcej robić.
Jeśli jednak stwierdzisz, że dłuższe elementy można określić w ładunku bez żadnych konsekwencji, zmień <Element>
na odpowiednią wartość zgodnie z Twoimi 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 ładunku 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 działa (zidentyfikowana 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ę takich elementów, to jest to przyczyna 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 wyświetlonym powyżej ładunku XML wiersz 5 zawiera 4. element podrzędny
<director>
elementu głównego<movie>
. Ponieważ liczba elementów podrzędnych w danych wejściowych w formacie XML jest większa niż 3 (wartość określona dla elementu<ChildCount>
), pojawia się 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ć ładunki z liczbą elementów podrzędnych, która przekracza określony próg, zostanie wyświetlony komunikat o błędzie. W takim przypadku nie musisz podejmować żadnych dodatkowych działań.
Jeśli jednak stwierdzisz, że w ładunku może się znaleźć większa liczba elementów podrzędnych (w tym komentarzy itp.), bez żadnych konsekwencji, zmień <ChildCount>
na odpowiednią wartość zgodnie z wymaganiami.
Jeśli na przykład uważasz, że możesz zezwolić na maksymalnie 10 elementów podrzędnych, zmień 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 zasadzie jako 4
, ale ładunek wejściowy ma głębokość węzła większą niż 4
, błąd jest zgłaszany.
Diagnostyka
Sprawdź komunikat o błędzie, aby znaleźć nazwę reguły XMLThreatProtection i numer wiersza, w którym przekroczono 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 ładunku 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ź zasadę XMLThreatProtection, która nie przeszła weryfikacji (zidentyfikowaną w kroku 1), i zapisz wartość określoną w elemencie
<NodeDepth>
.W poniższym przykładzie zasady XMLThreatProtection
<NodeDepth>
ma wartość5
:<?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) ładunku wejściowego i sprawdź, czy podana w nim głębokość węzła nie jest większa niż liczba określona 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:
<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, należy spodziewać się komunikatu o błędzie. W tym przypadku nie musisz nic robić.
Jeśli jednak stwierdzisz, że większa głębokość węzła może być dozwolona, zmień <NodeDepth>
na odpowiednią wartość zgodnie z wymaganiami.
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 zasadzie XMLThreatProtection, ale ładunek wejściowy zawiera element o więcej niż 2 atrybutach, błąd jest zgłaszany.
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 ładunku 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ę z błędami (określoną w kroku 1) i zanotuj 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 ten limit, 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>
), występuje 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ć ładunki, które przekraczają określoną liczbę atrybutów, powinien pojawić się komunikat o błędzie. 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ą, biorąc pod uwagę swoje wymagania.
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 zasadzie jako 5
, ale ładunek wejściowy ma nazwę atrybutu o długości przekraczającej 5 znaków, 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ść 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ę z błędami (określoną w kroku 1) i zanotuj wartość określoną w elemencie
<Attribute>
.W poniższym przykładzie zasady XMLThreatProtection
<Attribute>
ma wartość5
:<?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 określona w elemencie
<Attribute>
(zidentyfikowanym w kroku 2). Jeśli liczba znaków przekracza wartość atrybutu, to jest 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>
Dane XML pokazane powyżej w wierszu 3 mają 2 atrybuty
category
icuisine
o długości nazwy odpowiednio 8 i 7 znaków..
Ponieważ długość nazwy atrybutu jest większa niż 5 (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 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 stwierdzisz, że dłuższa nazwa atrybutu może być dozwolona, zmień <Attribute>
na odpowiednią wartość zgodnie z wymaganiami.
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, jeśli wejściowy ładunek komunikatu określony przez element <Source>
zasady zawiera dokument XML, w którym wartość atrybutu przekracza liczbę znaków określoną w elemencie podrzędnym <Attribute>
elementu <ValueLimits>
.
Jeśli na przykład w zasadzie XMLThreatProtection element <Attribute>
jest określony jako 10
, ale ładunek wejściowy ma wartość atrybutu większą niż 10 znaków, zgłaszany jest 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 poniższym przykładzie zasady XMLThreatProtection wartość
<Attribute>
ma wartość 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:
<?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>
Ładunek XML pokazany powyżej w wierszu 3 ma atrybut (kuchnia) o wartości 12 znaków. Długość wartości atrybutu jest większa niż 10 (wartość określona dla elementu
<Attribute>
), więc występuje 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ć ładunki, które przekraczają określoną długość wartości atrybutu, powinien pojawić się komunikat o błędzie. W tym przypadku nie musisz nic robić.
Jeśli jednak stwierdzisz, że mogą być dozwolone dłuższe wartości atrybutów, zmień element podrzędny <Attribute>
elementu <ValueLimits>
na odpowiednią wartość zgodnie z Twoimi wymaganiami.
Jeśli np. uważasz, że wartości atrybutów mogą 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>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 ładunek 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 elementach podrzędnych <Text>
i <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
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
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ź zasadę z błędami (określoną w kroku 1) i zanotuj wartość określoną w elemencie podrzędnym
<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, to jest 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>
Ładunek XML pokazany powyżej w wierszu 4 zawiera tekst o długości 53 znaków. 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 na celu ochronę przed ładunkami przekraczającymi określoną długość tekstu, należy spodziewać się komunikatu o błędzie. W tym przypadku nie musisz nic 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 wejściowy ładunek komunikatu określony przez element <Source>
zasady XMLThreatProtection zawiera dokument XML, w którym długość komentarza przekracza liczbę znaków określoną w elemencie podrzędnym <Comment>
elementu <ValueLimits>
zasady.
Jeśli na przykład element <Comment>
jest określony w zasadzie jako 10
, ale ładunek wejściowy zawiera komentarz zawierający więcej niż 10 znaków, ten błąd jest zgłaszany.
Diagnostyka
Sprawdź komunikat o błędzie, aby znaleźć 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ź zasady, które nie przeszły weryfikacji (zidentyfikowane w kroku 1), i zapisz wartość określoną w elementach podrzędnych
<Comment>
elementu<ValueLimits>
.W poniższym przykładzie zasady XMLThreatProtection
<Comment>
ma wartość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ź 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:
<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>
Ładunek XML pokazany powyżej w wierszu 2 zawiera komentarz o wartości 31 znaków
.
Ponieważ długość komentarza jest większa niż 10 (wartość określona dla elementu<Comment>
), pojawia się następujący 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 takim przypadku nie musisz nic więcej robić.
Jeśli jednak uznasz, że dłuższy komentarz może być dozwolony, zmień element podrzędny <Comment>
elementu <ValueLimits>
na odpowiednią wartość, biorąc pod uwagę swoje wymagania.
Jeśli na przykład uważasz, że możesz przypisać wartości mające maksymalnie 40 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>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 w zasadzie XMLThreatProtection element <ProcessingInstructionData>
jest określony jako 10
, ale ładunek wejściowy zawiera instrukcję przetwarzania o długości przekraczającej 10 znaków, zgłaszany jest 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ź zasady, które nie przeszły weryfikacji (zidentyfikowane w kroku 1), i zapisz wartość określoną w elementach podrzędnych
<ProcessingInstructionData>
elementu<ValueLimits>
.W poniższym przykładzie zasady XMLThreatProtection
<ProcessingInstructionData>
ma wartość30
:<?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 (określony w kroku 1) ładunku wejściowego i sprawdź, czy podana długość danych instrukcji przetwarzania zawiera więcej znaków niż liczba określona w elemencie
<ProcessingInstructionData>
(wskazano w kroku 2). Jeśli liczba znaków przekracza dane instrukcji przetwarzania, jest to przyczyną 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 zasada XMLThreatProtection ma chronić ładunki, które przekraczają określoną długość danych instrukcji przetwarzania, powinien pojawić się komunikat o błędzie. W tym przypadku nie musisz nic robić.
Jeśli jednak stwierdzisz, że dozwolone są dłuższe elementy danych instrukcji przetwarzania, zmień element podrzędny <ProcessingInstructionData>
elementu <ValueLimits>
na odpowiednią wartość zgodnie z Twoimi 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ę zasady XMLThreatProtection i numer wiersza, w którym została przekroczona docelowa liczba 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ź błędną zasadę XMLThreatProtection (określoną w kroku 1) i zanotuj wartość określoną w elemencie podrzędnym
<ProcessingInstructionTarget>
w<NameLimits
>. .W poniższym przykładzie zasady XMLThreatProtection
<ProcessingInstructionTarget>
ma wartość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>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ść celu instrukcji przetwarzania nie przekracza liczby znaków określonej w elemencie
<ProcessingInstructionTarget>
(określonym w kroku 2). Jeśli liczba znaków przekracza limit rozmiaru docelowego, to właśnie jest 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>
Dane XML pokazane powyżej w wierszu 2 mają nazwę docelową 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ć ładunki, które przekraczają określoną długość docelową instrukcji procesu, powinien pojawić się komunikat o błędzie. 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 wejściowy ładunek komunikatu określony przez element <Source>
zasady XMLThreatProtection zawiera dokument XML, w którym identyfikator URI przestrzeni nazw przekracza liczbę znaków określoną w elemencie podrzędnym <NamespaceURI>
zasady <ValueLimits>
.
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ź zasady, które nie przeszły weryfikacji (zidentyfikowane w kroku 1), i zapisz wartość określoną w podrzędnym elemencie
<NamespaceURI>
elementu<ValueLimits
>.W poniższym przykładzie zasady XMLThreatProtection
<NamespaceURI>
ma wartość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 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, to jest to przyczyna błędu.Oto przykładowy ładunek wejściowy:
<?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>
Ładunek XML przedstawiony powyżej w wierszu 2 zawiera identyfikator URI przestrzeni nazw www.google.com/profile o długości 22 znaków. Ponieważ długość identyfikatora URI przestrzeni nazw jest większa niż 10 (wartość określona dla elementu
<NamespaceURI>
), pojawia się ten komunikat o błędzie: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ść identyfikatora URI przestrzeni nazw, to wiadomość o błędzie jest oczekiwana. W takim przypadku nie musisz nic więcej 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 identyfikator URI przestrzeni nazw może mieć 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 zasadzie XMLThreatProtection element <NamespacePrefix>
jest określony jako 10
, ale ładunek wejściowy ma prefiks przestrzeni nazw o długości przekraczającej 10 znaków, zgłaszany jest ten błąd.
Diagnostyka
Sprawdź komunikat o błędzie, aby zidentyfikować 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 ładunku 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ź zasadę z błędami (określoną w kroku 1) i zanotuj wartość określoną w elemencie podrzędnym
<NamespacePrefix>
w<NameLimits
>. .W poniższym przykładzie zasady XMLThreatProtection
<NamespacePrefix>
ma wartość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>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 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>
Dane XML na linii 2 mają 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ć ładunki, które przekraczają określoną długość prefiksu identyfikatora URI przestrzeni nazw, powinien pojawić się komunikat o błędzie. W takim przypadku nie musisz nic więcej 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 identyfikatora 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>
w zasadach.
Jeśli na przykład element <NamespaceCountPerElement>
jest określony w zasadzie jako 3
, ale ładunek wejściowy zawiera element o więcej niż 3 przestrzeniach nazw, ten błąd jest zgłaszany.
Diagnostyka
Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym została przekroczona liczba przestrzeni nazw. Na przykład w tym komunikacie o błędzie nazwa zasady to
XMLThreat-Protection-1
, a numer wiersza w ładunku 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ź zasadę z błędami (określoną w kroku 1) i zanotuj wartość określoną w elemencie podrzędnym
<NamespaceCountPerElement>
w<StructureLimits
>. .W tym przykładzie reguły XMLThreatProtection wartość
<NamespaceCountPerElement>
jest ustawiona na3
:<?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 na element, jest to przyczyna 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 błąd: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 tym przypadku nie musisz nic robić.
Jeśli jednak uznasz, że można dopuścić większą liczbę nazwanych przestrzeni, 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 wejściowy:
<?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 powyższym ładunku XML wiersz 9 nie zamyka prawidłowo elementu głównego, ponieważ brakuje elementu
/
. Ponieważ kod XML nie jest poprawnie sformułowany, pojawia się błąd:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: Syntax error while parsing XML prologue
Rozdzielczość
Sprawdź, czy do każdego serwera proxy interfejsu API zawierającego zasadę XMLThreatProtection przekazywany jest prawidłowy wejściowy ładunek XML.
Aby naprawić opisany powyżej przykładowy błąd, zmodyfikuj dane wejściowe w pliku 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 jest:
- Poza zakresem (niedostępne w ramach konkretnego procesu, w którym jest wykonywana zasada)
- nie jest jedną z prawidłowych wartości
request
,response
lubmessage
;
Ten błąd występuje na przykład wtedy, gdy dla elementu <Source>
zasady ustawiona jest zmienna, której nie ma w przepływie, w którym jest wykonywana zasada.
Diagnostyka
Z komunikatu o błędzie określ 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 zmienne Source torequests:
.XMLThreatProtection stepDefinition XML-Threat-Protection-1: Source requests is not available
Sprawdź błędną zasadę XMLThreatProtection i sprawdź wartość określoną dla elementu
<Source>
określonego 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ść
Sprawdź, czy zmienna ustawiona w elemencie <Source>
w nieprawidłowej zasadzie XMLThreatProtection jest ustawiona na request
, response
lub message
i istnieje w przepływie wykonywania zasady.
Aby poprawić przykładową zasadę przedstawioną powyżej, możesz zmodyfikować element <Source>
, aby używał zmiennej request
, ponieważ występuje ona w procesie przesyłania żą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, jeśli element <Source>
w zasadzie XMLThreatProtection jest ustawiony na zmienną, 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 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 na serwerze proxy interfejsu API, w których wystąpił błąd, i określ konkretną zasadę XMLThreadProtection, w której element
<Source>
jest określony nazwą zmiennej podaną w kroku 1 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ść
Sprawdź, czy element <Source>
w nieprawidłowej zasadzie XMLThreatProtection jest ustawiony na zmienną przepływu typu Message istniejącą w przepływie, w którym jest wykonywana zasada.
Aby poprawić tę zasadę, możesz zmodyfikować element <Source>
, aby określić zmienną typu Message. Na przykład w przypadku błędu XMLThreatProtection 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>