<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
ExecutionFailed
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "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" } } }
错误响应正文示例
{
"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"
}
}
}
错误类型和可能的原因
XMLThreatProtection 政策可以抛出许多不同类型的 ExecutionFailed 错误。 下表列出了不同类型的错误及其可能原因:
错误 | 原因 |
ElementNameExceeded | 已超过 XML 标记中允许的最大字符串长度。 |
ChildCountExceeded | 已超过 XML 载荷中允许的最大子元素数。 |
NodeDepthExceeded | 已超过 XML 载荷中允许的 XML 元素的最大深度。 |
AttributeCountExceeded | 已超过单个元素中的最大属性数。 |
AttributeNameExceeded | 已超过属性名称允许的最大长度。 |
AttributeValueExceeded | 已超过属性值允许的最大长度。 |
TextExceeded | 已超过文本允许的最大长度。 |
CommentExceeded | 已超过评论允许的最大长度。 |
PIDataExceeded | 已超过允许的处理说明数据长度。 |
PITargetExceeded | 已超过进程说明名称长度。 |
NSURIExceeded | 已超过命名空间网址长度。 |
NSPrefixExceeded | 已超过命名空间前缀长度。 |
NSCountExceeded | 已超过单个元素中使用的名称空间数。 |
XML 载荷无效 | 输入 XML 载荷无效。 |
ElementNameExceeded
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
运行时流量返回 500 响应代码,并显示以下错误:
{ "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" } } }
错误响应正文示例
{
"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"
}
}
}
原因
如果政策的 <Source>
元素指定的输入载荷包含的 XML 元素超出 <NameLimits>
元素下 <Element>
元素中指定的长度上限,则会发生此错误。
例如,如果在在 XMLThreatProtection 政策中将 <Element>
元素指定为 5
,但输入载荷的某个元素的长度超过 5 个字符,则会引发此错误。
诊断
查看错误消息,以确定超出元素长度的输入载荷中的 XMLThreatProtection 政策名称、行号和可能的字符数。
例如,在以下错误消息中,政策名称为
XML-Threat-Protection-1,
,载荷中的行号为1
,可能的字符数为9.
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)
查看第 1 步中识别的失败政策并记下
<Element>
元素中指定的值。例如,在以下 XMLThreatProtection 政策中,
<Element>
设置为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>
查看输入载荷的特定行号(在第 1 步中识别),并检查该行中元素的长度是否大于指定给
<Element>
元素的值(在第 2 步中识别)。如果元素的长度超过此值,则会导致错误。下面是一个输入载荷示例:
<company> <name>Google</name> <country>USA</country> </company>
上面显示的 XML 载荷在第 1 行有一个名为
company
的根元素,其长度为 7 个字符。由于该元素的长度大于 5(即指定给<Element>
元素的值),因此会收到以下错误: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)
解决方法
如果 XMLThreadProtection 政策旨在防范元素名称超过定义值的载荷,则应该显示错误消息。在这种情况下,您无需执行任何其他操作。
不过,如果您确定可以在载荷中指定较长的元素而不会产生任何后果,请根据您的要求将 <Element>
修改为合适的值。
例如,如果您认为最多可以接受长度为 10 的元素,则按如下方式修改 XMLThreatProtection 政策:
<?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
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "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" } } }
错误响应正文示例
{
"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"
}
}
}
原因
如果由 <Source>
元素指定的输入消息载荷包含的 XML 元素中的子元素多于在政策的 <ChildCount>
元素中指定的值,则会发生此错误。
例如,如果 <ChildCount>
元素为 3,但输入 XML 载荷的某个元素包含 3 个以上的子元素,则会引发此错误。
诊断
查看错误消息,以标识 XMLThreatProtection 政策名称以及已超过条目计数的行号。例如,在以下错误消息中,政策名称为
XML-Threat-Protection-1
,载荷中的行号为5
: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)"
查看第 1 步中识别的失败政策并记下
<ChildCount>
元素中指定的值。在以下政策示例中,
<ChildCount>
设置为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>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>
查看输入载荷的特定行号(在第 1 中识别),并检查载荷中子元素(包括所有注释等)的数量是否大于指定给
<ChildCount>
元素的值(在第 2 步中识别)。如果子元素的数量超过了子元素计数,则会导致错误。下面是一个输入载荷示例:
<movie> <title>Jurassic Park</title> <language>English</language> <country>USA</country> <director>Steven Spielberg</director> </movie>
在上面显示的 XML 载荷中,第 5 行包含根元素
<movie>
的第四个子元素<director>
。由于输入 XML 载荷中的子元素计数大于 3(即指定给<ChildCount>
元素的值),因此您会收到以下错误: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)
解决方法
如果 XMLThreatProtection 政策旨在防范子元素计数超过特定阈值的载荷,则应该显示错误消息。在这种情况下,您不需要执行任何其他操作。
不过,如果您确定可以在载荷中添加大量子元素(包括注释等)而不会产生任何后果,请根据您的要求将 <ChildCount>
修改为合适的值。
例如,如果您认为最多可以接受 10 个子元素,请按如下方式修改 XMLThreatProtection 政策:
<?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
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "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" } } }
错误响应正文示例
{
"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"
}
}
}
原因
如果由 <Source>
元素指定的输入消息载荷包含 XML 文档,其中的节点层次结构超过在 XMLThreatProtection 政策的 <NodeDepth>
元素中指定的数量,则会发生此错误。
例如,如果在该政策中将 <NodeDepth>
元素指定为 4
,但输入载荷的节点深度超过 4
,则会引发此错误。
诊断
查看错误消息,以标识 XMLThreatProtection 政策名称以及已超过节点深度的行号。例如,在以下错误消息中,政策名称为
XML-Threat-Protection-1
,载荷中的行号为6
: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)
查看第 1 步中识别的失败 XMLThreatProtection 政策并记下
<NodeDepth>
元素中指定的值。在以下 XMLThreatProtection 政策示例中,
<NodeDepth>
设置为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>
查看输入载荷的特定行号(在第 1 步中识别),并检查其中指定的节点深度计数是否大于
<NodeDepth>
元素中指定的数量(在第 2 步中识别)。如果 XML 子元素的级别超过该计数,则会导致错误。下面是一个输入载荷示例:
<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>
上面所示第 6 行的 XML 载荷节点深度为 6
.
,因为节点深度大于 5(即指定给<NodeDepth>
元素的值),因此会收到以下错误: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)
解决方法
如果 XMLThreatProtection 政策旨在防范具有特定节点深度阈值的载荷,则应该显示错误消息。在这种情况下,您无需执行任何其他操作。
不过,如果您确定可以接受更高的节点深度,请根据您的要求将 <NodeDepth>
修改为合适的值。
例如,如果您认为最多可以接受节点深度为 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>
AttributeCountExceeded
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "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" } } }
错误响应正文示例
{
"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"
}
}
}
原因
如果由 XMLThreatProtection 政策的 <Source>
元素指定的输入消息载荷包含 XML 文档,其中某个元素的属性数量超过该政策的 <AttributeCountPerElement>
元素中指定的数量,则会发生此错误。
例如,如果在 XMLThreatProtection 政策中将
<AttributeCountPerElement>
元素指定为 2
,但输入载荷的某个元素包含 2 个以上的属性,则会引发此错误。
诊断
查看错误消息,以标识 XMLThreatProtection 政策名称以及已超过属性数目的行号。例如,在以下错误消息中,政策名称为
XMLThreat-Protection-1
,载荷中的行号为3
: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)
查看第 1 步中识别的失败政策并记下
<AttributeCountPerElement>
元素中指定的值。在以下政策示例中,
<AttributeCountPerElement>
设置为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>
查看输入载荷的特定行号(在第 1 步中识别),并检查指定的属性数目是否超过
<AttributeCountPerElementh>
元素中指定的数目(在第 2 步中识别)。如果属性数目超过该计数,则会导致错误。下面是一个输入载荷示例:
<?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>
上面所示第 3 行的 XML 载荷包含一个具有三个属性的元素。由于属性计数大于 2(即指定给
<AttributeCountPerElement>
元素的值),因此会收到以下错误: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)
解决方法
如果 XMLThreatProtection 政策旨在防范超过特定数量的属性的载荷,则应该显示错误消息。在这种情况下,您无需执行任何其他操作。
不过,如果您确定可以接受更多属性,请根据您的要求将 <AttributeCountPerElement>
修改为合适的值。
例如,如果您认为最多可以接受每个元素具有 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>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
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "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" } } }
错误响应正文示例
{
"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"
}
}
}
原因
如果由 XMLThreatProtection 政策的 <Source>
元素指定的输入消息载荷包含 XML 文档,其中某个属性名称长度超过该政策的 <NameLimits>
元素的 <Attribute>
子元素中指定的字符数,则会发生此错误。
例如,如果在该政策中将 <Attribute>
元素指定为 5
,但输入载荷的属性名称长度超过 5 个字符,则会引发此错误。
诊断
查看错误消息,以标识 XMLThreatProtection 政策名称以及超过属性名称长度的行号。例如,在以下错误消息中,政策名称为
XML-Threat-Protection-1
,载荷中的行号为3
: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)
查看第 1 步中识别的失败政策并记下
<Attribute>
元素中指定的值在以下 XMLThreatProtection 政策示例中,
<Attribute>
设置为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>
查看输入载荷的特定行号(在第 1 步中识别),并检查其中指定的属性长度包含的字符数是否大于
<Attribute>
元素中指定的数量(在第 2 步中识别)。如果字符数超过该属性值,则会导致此错误。下面是一个输入载荷示例:
<?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>
上面所示第 3 行的 XML 载荷有两个属性(即
category
和cuisine
)的名称长度分别为 8 个字符和 7 个字符.
,由于属性名称长度大于 5(即指定给<Attribute>
元素的值),因此会收到以下错误: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)
解决方法
如果 XMLThreatProtection 政策旨在防范超过特定属性名称长度的载荷,则应该显示错误消息。在这种情况下,您无需执行任何其他操作。
但是,如果您确定可以接受更长的属性名称长度,请根据您的要求将 <Attribute>
修改为合适的值。
例如,如果您认为属性名称的长度最多可以为 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>15</Text>
<Attribute>10</Attribute>
<NamespaceURI>10</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
AttributeValueExceeded
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "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" } } }
错误响应正文示例
{
"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"
}
}
}
原因
如果由政策的 <Source>
元素指定的输入消息载荷包含 XML 文档,其中某个属性值超过 <ValueLimits>
元素的 <Attribute>
子元素中指定的字符数,则会发生此错误。
例如,如果在 XMLThreatProtection 政策中将 <Attribute>
元素指定为 10
,但输入载荷的属性值长度超过 10 个字符,则会引发此错误。
诊断
查看错误消息,以标识 XMLThreatProtection 政策名称以及已超过属性数目的行号。例如,在以下错误消息中,政策名称为
XML-Threat-Protection-1
,载荷中的行号为3
: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)
查看第 1 步中识别的失败政策并记下
<ValueLimits>
元素的<Attribute>
子元素中指定的值在以下 XMLThreatProtection 政策示例中,
<Attribute>
设置为 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>
查看输入载荷的特定行号(在第 1 步中识别),并检查其中指定的属性值包含的字符数是否大于
<Attribute>
元素中指定的数量(在第 2 步中识别)。如果字符数超过该属性值,则会导致此错误。下面是一个输入载荷示例:
<?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>
上面所示第 3 行的 XML 载荷包含一个值长度为 12 个字符的属性(类型)。由于属性值长度大于 10(即指定给
<Attribute>
元素的值),因此会收到以下错误: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)
解决方法
如果 XMLThreatProtection 政策旨在防范超过特定属性值长度的载荷,则应该显示错误消息。在这种情况下,您无需执行任何其他操作。
但是,如果您确定可以接受更长的属性值,请根据您的要求将 <ValueLimits>
元素的 <Attribute>
子元素修改为合适的值。
例如,如果您认为属性值最多可以为 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>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
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "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" } } }
错误响应正文示例
{
"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"
}
}
原因
如果由 XMLThreatProtection 政策的 <Source>
元素指定的输入消息载荷包含 XML 文档,其中某个元素的文本长度超过该政策的 <ValueLimits>
元素的 <Text>
子元素中指定的字符数,则会发生此错误。
例如,如果在该政策中将 <Text>
元素指定为 15
,但输入载荷包含的文本长度超过 15 个字符,则会引发此错误。
诊断
查看错误消息,以标识 XMLThreatProtection 政策名称以及已超过属性数目的行号。例如,在以下错误消息中,政策名称为
XML-Threat-Protection-1
,载荷中的行号为4
: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)
查看第 1 步中识别的失败政策并记下
<ValueLimits>
元素的<Text>
子元素中指定的值在以下 XMLThreatProtection 政策示例中,
<Text>
设置为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>
查看输入载荷的特定行号(在第 1 步中识别),并检查其中指定的属性值包含的字符数是否大于
<Text>
元素中指定的数量(在第 2 步中识别)。如果字符数超过该属性值,则会导致此错误。<food> <name>Veg Sandwich</name> <price>$5.95</price> <description>Vegetarian Sandwich with onions, tomatoes and lettuce</description> <calories>650</calories> </food>
上面所示第 4 行的 XML 载荷包含长度为 53 个字符的文本。由于属性值长度大于 15(即指定给
<Text>
元素的值),因此会收到以下错误: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)
解决方法
如果 XMLThreatProtection 政策旨在防范超过特定文本长度的载荷,则应该显示错误消息。在这种情况下,您无需执行任何其他操作。
但是,如果您确定可以接受更长的文本长度,请根据您的要求将 <ValueLimits>
元素的 <Text>
子元素修改为合适的值。
例如,如果您认为属性值的长度最多可以为 60 个字符,请按以下方式修改政策:
<?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
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "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" } } }
错误响应正文示例
{
"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"
}
}
}
原因
如果由 XMLThreatProtection 政策的 <Source>
元素指定的输入消息载荷包含 XML 文档,其中某个评论长度超过该政策的 <ValueLimits>
元素的 <Comment>
子元素中指定的字符数,则会发生此错误。
例如,如果在该政策中将 <Comment>
元素指定为 10
,但输入载荷包含的评论长度超过 10 个字符,则会引发此错误。
诊断
查看错误消息,以标识 XMLThreatProtection 政策名称和已超过评论长度的行号。例如,在以下错误消息中,政策名称为
XML-Threat-Protection-1
,载荷中的行号为2
: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)
查看第 1 步中识别的失败政策并记下
<ValueLimits>
元素的<Comment>
子元素中指定的值在以下 XMLThreatProtection 政策示例中,
<Comment>
设置为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>
查看输入载荷的特定行号(在第 1 步中识别),并检查其中指定的评论长度包含的字符数是否大于
<Comment>
元素中指定的数量(在第 2 步中识别)。如果字符数超过该属性值,则会导致此错误。下面是一个输入载荷示例:
<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>
上面所示第 2 行的 XML 载荷带有值长度为 31 个字符的评论
.
,由于评论长度大于 10(即指定给<Comment>
元素的值),因此会收到以下错误: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)
解决方法
如果 XMLThreatProtection 政策旨在防范超过特定评论长度的载荷,则应该显示错误消息。在这种情况下,您无需执行任何其他操作。
但是,如果您确定可以接受更长的评论,请根据您的要求将 <ValueLimits>
元素的 <Comment>
子元素修改为合适的值。
例如,如果您认为属性值最多可以为 40 个字符,请按以下方式修改政策:
<?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
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "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" } } }
错误响应正文示例
{
"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"
}
}
}
原因
如果由 XMLThreatProtection 政策的 <Source>
元素指定的输入消息载荷包含 XML 文档,其中某个处理数据说明的长度超过该政策的 <ValueLimits>
元素的 <ProcessingInstructionData>
子元素中指定的字符数,则会发生此错误。
例如,如果在 XMLThreatProtection 政策中将 <ProcessingInstructionData>
元素指定为 10
,但输入载荷包含的处理说明长度超过 10 个字符,则会引发此错误。
诊断
查看错误消息,以标识 XMLThreatProtection 政策名称和已超过处理说明长度的行号。例如,在以下错误消息中,政策名称为
XML-Threat-Protection-1
,载荷中的行号为2
: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)
查看第 1 步中识别的失败政策并记下
<ValueLimits>
元素的<ProcessingInstructionData>
子元素中指定的值。在以下 XMLThreatProtection 政策示例中,
<ProcessingInstructionData>
设置为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>
查看输入载荷的特定行号(在第 1 步中识别),并检查其中指定的处理说明数据长度包含的字符数是否大于
<ProcessingInstructionData>
元素中指定的数量(在第 2 步中识别)。如果字符数超过处理说明数据长度,则会导致错误。下面是一个输入载荷示例:
<?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>
上面所示第 1 行的 XML 载荷有一个处理说明数据元素(
type="text/xsl" href="mobilephones.xsl"?)
长度为 40 个字符.
),因为此长度大于 30(即指定给<ProcessingInstructionData>
元素的值),因此会收到以下错误: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)
解决方法
如果 XMLThreatProtection 政策旨在防范超出特定处理说明数据长度的载荷,则应该显示错误消息。在这种情况下,您无需执行任何其他操作。
但是,如果您确定可以接受更长的处理说明数据元素,请根据您的要求将 <ValueLimits>
元素的 <ProcessingInstructionData>
子元素修改为合适的值。
例如,如果您认为数据处理说明长度最多可以为 50 个字符,请按以下方式修改政策:
<?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
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "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" } } }
错误响应正文示例
{
"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"
}
}
}
原因
如果由 XMLThreatProtection 政策的 <Source>
元素指定的输入消息载荷包含 XML 文档,其中某个处理说明目标的长度超过该政策的 <NameLimits>
元素的 <ProcessingInstructionTarget>
子元素中指定的字符数,则会发生此错误。
例如,如果在 XMLThreatProtection 政策中将 <ProcessingInstructionTarget>
元素指定为 10
,但输入载荷包含的处理说明目标长度超过 10 个字符,则会引发此错误。
诊断
查看错误消息,以标识 XMLThreatProtection 政策名称和已超过处理说明目标数量的行号。例如,在以下错误消息中,政策名称为
XML-Threat-Protection-1
,载荷中的行号为1
: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)
查看第 1 步中识别的失败 XMLThreatProtection 政策并记下
<NameLimits
元素的<ProcessingInstructionTarget>
子元素中指定的值。在以下 XMLThreatProtection 政策示例中,
<ProcessingInstructionTarget>
设置为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>
查看输入载荷的特定行号(在第 1 步中识别),并检查其中指定的处理说明目标长度包含的字符数是否大于
<ProcessingInstructionTarget>
元素中指定的数量(在第 2 步中识别)。如果字符数超过目标大小限额,则会导致错误。下面是一个输入载荷示例:
<?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>
上面所示第 2 行的 XML 载荷包含一个名称长度为 14 个字符的处理说明目标
xml-stylesheet"
。由于处理说明目标名称长度超过 10(即指定给<ProcessingInstructionTarget>
元素的值),因此会收到以下错误: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)
解决方法
如果 XMLThreatProtection 政策旨在防范超出特定处理说明目标长度的载荷,则应该显示错误消息。在这种情况下,您无需执行任何其他操作。
但是,如果您确定可以接受更长的处理说明目标,请根据您的要求将 <NameLimits>
元素的 <ProcessingInstructionTarget>
子元素修改为合适的值。
例如,如果您认为处理说明目标的长度最多可以为 25 个字符,请按以下方式修改政策:
<?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
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "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" } } }
错误响应正文示例
{
"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"
}
}
}
原因
如果由 XMLThreatProtection 政策的 <Source>
元素指定的输入消息载荷包含 XML 文档,其中某个命名空间 URI 长度超过该政策的 <ValueLimits>
元素的 <NamespaceURI>
子元素中指定的字符数,则会发生此错误。
例如,如果在该政策中将 <NamespaceURI>
元素指定为 10
,但输入载荷包含的命名空间 URI 长度超过 10 个字符,则会引发此错误。
诊断
查看错误消息,以标识 XMLThreatProtection 政策名称和已超过命名空间 URI 长度的行号。例如,在以下错误消息中,政策名称为
XML-Threat-Protection-1
,载荷中的行号为2
: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)
查看第 1 步中识别的失败政策并记下
<ValueLimits
元素的<NamespaceURI>
子元素中指定的值在以下 XMLThreatProtection 政策示例中,
<NamespaceURI>
设置为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>
查看输入载荷的特定行号(在第 1 步中识别),并检查其中指定的命名空间 URI 长度包含的字符数是否大于
<NamespaceURI>
元素中指定的数量(在第 2 步中识别)。如果字符数超过命名空间 URI 长度,则会导致错误。下面是一个输入载荷示例:
<?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>
上面所示第 2 行的 XML 载荷具有一个长度为 22 个字符的命名空间 URI,即 www.google.com/profile。由于该命名空间 URI 长度大于 10(即指定给
<NamespaceURI>
元素的值),因此会收到以下错误: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)
解决方法
如果 XMLThreatProtection 政策旨在防范超出特定命名空间 URI 长度的载荷,则应该显示错误消息。在这种情况下,您无需执行任何其他操作。
但是,如果您确定可以接受更长的命名空间 URI,请根据您的要求将 <ValueLimits>
元素的 <NamespaceURI>
子元素修改为合适的值。
例如,如果您认为命名空间 URI 的长度最多可以为 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>30</NamespaceURI>
<Comment>10</Comment>
<ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
</XMLThreatProtection>
NSPrefixExceeded
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "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" } } }
错误响应正文示例
{
"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"
}
}
}
原因
如果由 <Source>
元素指定的输入消息载荷包含 XML 文档,其中某个命名空间 前缀长度超过该政策的 <NameLimits>
元素的 <NamespacePrefix>
子元素中指定的字符数,则会发生此错误。
例如,如果在 XMLThreatProtection 政策中将 <NamespacePrefix>
元素指定为 10
,但输入载荷包含的命名空间前缀长度超过 10 个字符,则会引发此错误。
诊断
查看错误消息,以标识 XMLThreatProtection 政策名称和已超过命名空间 URI 前缀长度的行号。例如,在以下错误消息中,政策名称为
XML-Threat-Protection-1
,载荷中的行号为2
: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)
查看第 1 步中识别的失败政策并记下
<NameLimits
元素的<NamespacePrefix>
子元素中指定的值在以下 XMLThreatProtection 政策示例中,
<NamespacePrefix>
设置为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>
查看输入载荷的特定行号(在第 1 步中识别),并检查其中指定的命名空间前缀包含的字符数是否大于
<NamespacePrefix>
元素中指定的数量(在第 2 步中识别)。如果字符数超过命名空间前缀限额,则会导致错误。下面是一个输入载荷示例:
<?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>
上面所示第 2 行的 XML 载荷具有一个长度为 11 个字符的命名空间前缀
userprofile
。由于该命名空间 URI 前缀长度大于 10(即指定给<NamespacePrefix>
元素的值),因此会收到以下错误: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)
解决方法
如果 XMLThreatProtection 政策旨在防范超出特定命名空间 URI 前缀长度的载荷,则应该显示错误消息。在这种情况下,您无需执行任何其他操作。
但是,如果您确定可以接受更长的命名空间 URI 前缀,请根据您的要求将 <NameLimits>
元素的 <NamespacePrefix>
子元素修改为合适的值。
例如,如果您认为命名空间 URI 前缀的长度最多可以为 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>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
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "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" } } }
错误响应正文示例
{
"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"
}
}
}
原因
如果由 XMLThreatProtection 政策的 <Source>
元素指定的输入消息载荷包含 XML 文档,其中某个元素中所用的命名空间数量超过该政策的 <StructureLimits>
元素的 <NamespaceCountPerElement>
子元素中指定的数量,则会发生此错误。
例如,如果在该政策中将 <NamespaceCountPerElement>
元素指定为 3
,但输入载荷的某个元素包含 3 个以上的命名空间,则会引发此错误。
诊断
查看错误消息,以标识 XMLThreatProtection 政策名称以及已超过命名空间数目的行号。例如,在以下错误消息中,政策名称为
XMLThreat-Protection-1
,载荷中的行号为2
: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)
查看第 1 步中识别的失败政策并记下
<StructureLimits
元素的<NamespaceCountPerElement>
子元素中指定的值在以下 XMLThreatProtection 政策示例中,
<NamespaceCountPerElement>
设置为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>
查看输入载荷的特定行号(在第 1 步中识别),并检查其中为某个元素指定的命名空间数量是否大于
<NamespaceCountPerElement>
元素中指定的数量(在第 2 步中识别)。如果命名空间的数量超过每个元素的命名空间计数限额,则会导致错误。下面是一个输入载荷示例:
<?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>
上面所示第 2 行的 XML 载荷包含 3 个以上命名空间。由于命名空间计数大于 3(即指定给
<NamespaceCountPerElement>
元素的值),因此会收到以下错误: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)
解决方法
如果 XMLThreatProtection 政策旨在防范单个元素中超出特定数量的命名空间的载荷,则应该显示错误消息。在这种情况下,您无需执行任何其他操作。
但是,如果您确定可以接受更多命名空间,请根据您的要求将 <StructureLimits>
元素的 <NamespaceCountPerElement>
子元素修改为合适的值。
例如,如果您认为单个元素中最多可包含 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>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
错误代码
steps.xmlthreatprotection.ExecutionFailed
错误响应正文
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. Reason: [error_description]", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
错误响应正文示例
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Execution failed. reason: Syntax error while parsing XML prologue",
"detail": {
"errorcode": "steps.xmlthreatprotection.ExecutionFailed"
}
}
}
原因
如果 XMLProtectionPolicy 政策的 <Source>
元素指定的输入消息载荷不是有效的 XML 文档,就会出现此错误。
诊断
检查错误消息,以确定发生错误的政策名称。在以下示例中,政策名称为
XML-Threat-Protection-1
。XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: Syntax error while parsing XML prologue
检查输入载荷,并检查载荷中传递的 XML 文档是不是格式正确的 XML 文档。
下面是一个输入载荷示例:
<?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>
在上面所示的 XML 载荷中,第 9 行未正确关闭根元素,因为缺少
/
。由于它不是格式正确的 XML,因此您会收到以下错误:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: Syntax error while parsing XML prologue
解决方法
确保将有效的输入 XML 载荷传递到包含 XMLThreatProtection 政策的任何 API 代理。
如需更正上面显示的示例错误,请按如下步骤修改输入 XML 载荷:
<?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
错误代码
steps.xmlthreatprotection.SourceUnavailable
错误响应正文
{ "fault": { "faultstring": "XMLThreatProtection stepDefinition[policy_name]: Source[var_name] is not available" "detail": { "errorcode": "steps.xmlthreatprotection.SourceUnavailable" } } }
错误响应正文示例
{
"fault": {
"faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
Source requests is not available",
"detail": {
"errorcode": "steps.xmlthreatprotection.SourceUnavailable"
}
}
}
原因
如果在 XMLThreatProtection 政策的 <Source>
元素中指定的 message 变量出现下列其中一种情况,则会发生此错误:
- 超出范围(在执行政策的特定流中不可用)
- 不是
request
、response
或message
有效值之一
例如,如果将政策中的 <Source>
元素设置为在执行政策的流中不存在的变量,就会发生此错误。
诊断
从错误消息中确定 XMLThreatProtection 政策名称以及来源变量的名称。例如,在以下错误消息中,XMLThreatProtection 政策名称为
XML-Threat-Protection-1
,来源变量为requests:
XMLThreatProtection stepDefinition XML-Threat-Protection-1: Source requests is not available
查看失败的 XMLThreatProtection 政策,并检查指定给在第 1 步中所识别
<Source>
元素的值。在以下 XMLThreatProtection 政策示例中,
<Source>
元素设置为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>
<Source>
元素的有效值为request
、response
或message.
,因为requests
不是有效的值,并且在执行政策的流中不存在,因此您会收到以下错误:XMLThreatProtection stepDefinition XML-Threat-Protection-1: Source requests is not available
解决方法
确保失败 XMLreatProtection 政策的 <Source>
元素中设置的变量设置为 request
、response
或 message
,并且该变量在执行政策的流中存在。
如需更正上面所示的政策示例,您可以修改 <Source>
元素以使用 request
变量,因为它存在于请求流中:
<?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
错误代码
steps.xmlthreatprotection.NonMessageVariable
错误响应正文
{ "fault": { "faultstring": "Variable var_name does not resolve to a Message" "detail": { "errorcode": "steps.xmlthreatprotection.NonMessageVariable" } } }
错误响应正文示例
{
"fault": {
"faultstring": "Variable message.content does not resolve to a Message",
"detail": {
"errorcode": "steps.xmlthreatprotection.NonMessageVariable"
}
}
}
原因
如果将 XMLThreatProtection 政策中的 <Source>
元素设为非消息类型的变量,则会发生此错误。
消息类型变量表示整个 HTTP 请求和响应。内置 Apigee Edge 流变量 request
、response
和 message
都属于 Message 类型。如需详细了解消息变量,请参阅变量参考。
诊断
从错误消息中确定未解析为“消息”类型变量的变量名称。例如,在以下错误消息中,变量的名称为
message.content
Variable message.content does not resolve to a Message
检查出现故障的 API 代理中的所有 XMLThreadProtection 政策并标识特定 XMLThreadProtection 政策,其中的
<Source>
元素是使用上述第 1 步中识别的变量名称指定的。在以下 XMLThreatProtection 政策示例中,
<Source>
设置为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>
由于变量
message.content
不是 Message 类型,因此您会收到以下错误:Variable message.content does not resolve to a Message
解决方法
确保失败的 XMLThreatProtection 政策中的 <Source>
元素设置为在政策执行的流中存在的消息类型流变量。
如需更正该政策,您可以修改 <Source>
元素来指定类型为 Message 的变量。例如,在失败的 XMLThreatProtection 中,您可以将 <Source>
元素指定为 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>