文章
· 9 hr 前 阅读大约需 2 分钟

"隐藏的 HTTP 错误"(IIS 背后)

您发送了一个 HTTP 请求,但得到了一个 HTTP 错误,而且是一个您意想不到的 HTML 错误页面......这是怎么回事?

具体举例来说,也许您尝试读取 FHIR 资源(例如 /Patient/123),但得到的是 404 错误页面,尽管使用其他患者 ID 时,您得到的是资源有效载荷,因此 "页面 "肯定存在......为什么会得到 404 错误页面?

这些问题的答案与 IIS 网络服务器处理错误的行为有关。

IIS 有 3 个显示错误的选项:

  • 始终只显示自定义错误页面
  • 始终显示详细的服务器错误
  • 对本地请求显示详细错误,但对远程请求显示自定义错误页面。

最后一个选项(比始终显示详细错误)更安全,因为有时错误细节可能会暴露出不想让外部用户知道的内部信息。因此,这是 IIS 的默认设置。

但这意味着,如果您针对远程服务器进行测试,实际错误将被隐藏起来。因此,您需要将其更改为 "详细错误"(至少在调试阶段是这样,而且假设您考虑到了外部访问,也许会限制外部访问)。

有关此设置的更多详情,请参阅相关的 IIS 文章(您还可以查看我们文档中讨论此问题的相关部分)。

我提到的特定 FHIR 例子是一个有趣的案例,因为 404 错误可能仅仅意味着未找到特定的 FHIR 资源(您试图读取的 ID 不在存储库中),而不是服务器出现了某些问题("未找到页面")。

例如,如果您能看到详细的错误信息,就会看到类似下面的内容:

但如果没有详细的错误信息,你就会看到一个自定义的错误页面,就像这样:

这可能会引起误解,因此请牢记 IIS 设置。

讨论 (0)1
登录或注册以继续