我正在使用VS 2017和常规C在Windows 10上编写一个ISAPI扩展。
它工作得很好,但现在我在错误处理方面遇到了麻烦。我故意遇到一个错误,以确保错误消息是正确的。当客户端应用程序(不是浏览器)和IIS在同一台机器上时,我会收到预期的错误消息。当我连接到另一台pc上的副本时,我得到了500状态的IIS通用html。
下面是我生成头的地方:
// Send HTTP headers
SendHttpHeaders(pECB, "500 Internal Server Error", "Content-Type: text/plain\r\n\r\n");SendHttpHeaders是我用来发送头部的包装器函数。是这样的
下面是最后两行代码:
pECB->dwHttpStatusCode = HTTP_STATUS_SERVER_ERROR;
return HSE_STATUS_ERROR;为什么我没有收到我的自定义消息?
发布于 2019-04-16 10:21:52
除非另外配置了IIS,否则为detailed error messages are only shown to browsers connecting from localhost。
虽然链接的帖子描述了如何控制这种行为,但请注意,这种阻止旨在作为一种安全功能,并且(正如他们提到的)根据您的站点实现,当错误条件被触发时(即您不希望使用此行为的情况,例如错误),这可能会将内部详细信息暴露给公众查看。这可能是安全问题,也可能不是,这取决于您的操作环境(例如,公共互联网与企业内部网)、数据敏感性等。
https://stackoverflow.com/questions/55682118
复制相似问题