0

我在 Internet 上进行了广泛的搜索以寻找解决此问题的方法,但我能找到的总是与在运行 Apache 的 Linux 机器上进行超时调整有关。我在 Windows 2019 Server 上运行 IIS 版本 10。当 Facebook 大约 30 天前更改其网站时,Open Graph 图像共享协议停止正常工作。尝试使用 Facebook Developer 抓取工具时,我收到以下超时错误。

Curl Timeout
The request to scrape the URL timed out.

Curl Error
Curl error: 28 (OPERATION_TIMEOUTED)

我还向 Facebook 提交了错误报告,但他们只是关闭了报告,称问题出在我的服务器或网络连接上。我打开并检查了服务器的错误日志,没有发现任何问题。然后我设置并检查了 IIS 日志,发现 Facebook 确实正确地访问了服务器并获取了图像并将其报告回来。但是仍然会发生超时错误,并且在尝试共享图像时不会共享图像。以下是 IIS 日志中的记录,这些记录似乎表明 Facebook 确实正确地联系了我的服务器,除了他们使用的是“http”而不是“https”这一事实。这已向 Facebook 报告。

2020-12-24 18:31:51 W3SVC3 EDENUSA-FS11 10.1.252.250 GET /images/qr_code/edenusa_qr_code.png - 443 - 69.171.249.113 facebookexternalhit/1.1+(+http://www.facebook.com/externalhit_uatext.php) - www.edenusa.com 200 0 0 70

2020-12-24 18:32:02 W3SVC3 EDENUSA-FS11 10.1.252.250 GET /rent-lighting/lighting/rent_lighting.asp - 443 - 69.171.249.111 facebookexternalhit/1.1+(+http://www.facebook.com/externalhit_uatext.php) - www.edenusa.com 200 0 0 21410

以下是我们标题区域中所需元代码的片段,来自主页:

<!DOCTYPE html>
<head>
<title>Rent a Stage | Rent a Sound System | Rent Lighting System | Rent Up Lighting</title>
<meta prefix="fb: https://ogp.me/ns/fb#" property="fb:app_id" content="1376081292633720">
<meta property="og:url" content="https://www.edenusa.com/index.asp" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:title" content="Rent a Stage | Rent a Sound System | Rent Lighting System | Rent Up Lighting" />
<meta property="og:image" content="https://www.edenusa.com/images/homepage/compressed/indian_temple_in_chino_hills.jpg" />
<meta property="fb:app_id" content="1376081292633720" />

我已经为此工作了一个多星期,没有解决方案。还有其他人有这个问题,或者知道解决超时问题的方法吗?

4

1 回答 1

0

此问题已解决如下:

  1. 我们必须删除 GLOBAL.ASA 中的 REST 代码,该代码会根据客户端的 IP 地址获取地理信息(仅限城市和州)。服务端点有点慢,并且要求使用比可能被认为“正常”更长的超时时间。所以当这个代码分支被注释掉后,Facebook CURL 超时错误就不再出现了。我们正在寻找另一种更快的 IP 地理信息服务。

  2. 完成第 1 步后,我们发现仅在主页上,我们必须保留 URL 的 INDEX.ASP 部分。我们编写了代码,从规范 URL 中删除了“index.asp”。由于未知原因,Facebook 查看 HTTP 标头,发现原始 URL 包含“index.asp”,然后将其与“og:url”元标记中指定的 URL 进行比较。

总之,最近推出的 Facebook 包括为 CURL 配置更短超时值的新代码。这导致网络上的网站启动时间稍短,就会遇到此问题。因此,目前,唯一的解决办法是监控网站的启动时间,并将其缩短到足以让 Facebook 调试器/抓取工具能够像最近更改之前那样运行。

于 2020-12-28T19:59:32.297 回答