<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
InvalidProtocol
错误消息
通过 Edge 界面或 Edge Management API 部署 API 代理失败,并显示以下错误消息:
Error Saving Revision revision_number Invalid Protocol: invalid_protocol for Syslog handler in policy policy_name.
错误消息示例
Error Saving Revision 4
Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
示例屏幕截图
原因
如果 <Protocol>
元素中指定的协议无效,则 MessageLogging 政策的部署会失败,并显示此错误。有效协议为 TCP 和 UDP。对于通过 TLS/SSL 发送 syslog 消息,系统仅支持 TCP。
例如,如果您在 MessageLogging 政策的 <Protocol>
元素中指定 HTTP,则 API 代理的部署将失败并显示此错误:
<Protocol>HTTP</Protocol>
诊断
确定发生错误的 MessageLogging 政策。您可以在错误消息中找到此信息。例如,在以下错误中,政策名称为
LogToSyslog:
Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
在失败的 MessageLogging 政策配置中,检查在
<Protocol>
元素中指定的协议是否有效。如果指定的协议无效,就会导致错误。例如,以下政策指定了无效的协议。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageLogging name="LogToSyslog"> <Syslog> <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message> <Host>logs-01.loggly.com</Host> <Port>514</Port> <Protocol>HTTP</Protocol> <FormatMessage>true</FormatMessage> </Syslog> <logLevel>ALERT</logLevel> </MessageLogging>
由于在
<Protocol>
元素中定义的协议无效,因此 API 代理的部署将失败,并显示以下错误:Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
解决方法
确保 MessageLogging 政策的 <Protocol>
元素中定义的协议有效。<Protocol>
元素支持以下值:
- TCP
- UDP
如需更正上面显示的示例,请在 <Protocol>
元素中定义有效的协议:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageLogging name="LogToSyslog">
<Syslog>
<Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
<Host>logs-01.loggly.com</Host>
<Port>514</Port>
<Protocol>TCP</Protocol>
<FormatMessage>true</FormatMessage>
</Syslog>
<logLevel>ALERT</logLevel>
</MessageLogging>
InvalidPort
错误消息
通过 Edge 界面或 Edge Management API 部署 API 代理失败,并显示以下错误消息:
Error Saving Revision revision_number Invalid Port: 0 for Syslog handler in policy policy_name.
错误消息示例
Error Saving Revision 4
Invalid Port: 0 for Syslog handler in policy LogToSyslog.
示例屏幕截图
原因
如果未在 <Port>
元素中指定端口号或者此端口无效,则 MessageLogging 政策的部署会失败,并显示此错误。端口号必须是大于零的整数。
例如,如果声明 <Port>
元素如下所示,则 API 代理的部署将失败:
<Port>0</Port>
诊断
确定发生错误的 MessageLogging 政策。您可以从错误消息中找到此信息。例如,在以下错误中,政策名称为
LogToSyslog:
Invalid Port: 0 for Syslog handler in policy LogToSyslog.
在失败的 MessageLogging 政策中,检查在
<Port>
元素中指定的端口号是否有效。如果端口号未定义或无效,则会出现此错误。例如,以下政策指定了无效的端口号:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageLogging name="LogToSyslog"> <Syslog> <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message> <Host>logs-01.loggly.com</Host> <Port>0</Port> <Protocol>TCP</Protocol> <FormatMessage>true</FormatMessage> </Syslog> <logLevel>ALERT</logLevel> </MessageLogging>
由于在
<Port>
元素中定义的端口号无效,因此 API 代理的部署将失败,并显示以下错误:Invalid Port: 0 for Syslog handler in policy LogToSyslog.
解决方法
确保 MessageLogging 政策的 <Port>
元素中定义了端口号。它必须是大于零的整数。
如需更正上面显示的示例,请在 <Protocol>
元素中定义有效的端口号。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageLogging name="LogToSyslog">
<Syslog>
<Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
<Host>logs-01.loggly.com</Host>
<Port>514</Port>
<Protocol>TCP</Protocol>
<FormatMessage>true</FormatMessage>
</Syslog>
<logLevel>ALERT</logLevel>
</MessageLogging>