一个月前,我开发了一个 Windows 服务,它调用了一些谷歌分析 API,代码计划每 15 分钟执行一次。直到 5 天前,当我检查事件查看器时,它一直正常工作,我看到该服务在与 Google API 的每个连接中都引发了未经授权的访问 (401) 异常。当我重新启动服务时,它再次开始正常工作。
可能是什么原因?
问候
一个月前,我开发了一个 Windows 服务,它调用了一些谷歌分析 API,代码计划每 15 分钟执行一次。直到 5 天前,当我检查事件查看器时,它一直正常工作,我看到该服务在与 Google API 的每个连接中都引发了未经授权的访问 (401) 异常。当我重新启动服务时,它再次开始正常工作。
可能是什么原因?
问候
最有可能的是,您在启动时获得了一个身份验证令牌,并将其用于所有后续请求。身份验证令牌最终会过期;当您收到 401 时,您应该重新进行身份验证并获取新令牌。
此答案假定您正在使用一种身份验证机制,例如 AuthSub,它要求您“签署”请求。嵌入在这个签名中的是一个时间戳。如果您的计算机没有正确的时间,它将失败。
话虽如此,这可能是夏令时问题吗?您正在运行它的计算机是否有“Windows 补丁”来解决夏令时发生时的更改(更多信息)。
就在上周末,我也遇到了这样的问题。我认为修改“自动调整夏令时时钟”设置修复了它。
也许当您重新启动服务时,它会自行“纠正”。