IIS随机500错误,具有重写或错误传递的奥秘-isap_redirect.dll问题的权限?

问题描述 投票:0回答:1

我们有一个人流量低的站点,该站点已经过分阶段运行,然后投入生产,并且已经上线了30天。似乎是两天前,该网站开始随机出现500个错误。该服务器上有6个生产站点,该站点是唯一出现500个错误的站点。只需在站点的IIS中重新启动即可解决此问题。 IIS和ColdFusion日志记录仅记录了500条响应,没有错误。唯一的区别是一些URL重写规则:

<system.webServer>
  <httpErrors existingResponse="PassThrough" />
  <rewrite>
      <rules>
        <rule name="Redirect .cfm extension" stopProcessing="false">
          <match url="^(.*).cfm$" ignoreCase="true" />
        <conditions logicalGrouping="MatchAny">
          <add input="{URL}" pattern="(.*).cfm$" ignoreCase="false" />
        </conditions>
          <action type="Redirect" url="{R:1}" redirectType="Permanent" />
        </rule>
        <rule name="hide .cfm extension" stopProcessing="true">
          <match url="^(.*)$" ignoreCase="true" />
        <conditions>
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          <add input="{REQUEST_FILENAME}.cfm" matchType="IsFile" />
        </conditions>
          <action type="Rewrite" url="{R:0}.cfm" />
        </rule>
    </rules>
</rewrite>

[所有其他规则与同一服务器上其他站点上的规则相同。我们启用了失败的请求跟踪,这似乎表明某种权限错误:

enter image description here

所有站点均由相同的isapi_redirect.dll处理。我们检查了uriworkermap.properties和worker.properties,与其他生产服务器相比,它们是相同的。

为了消除差异,我们从web.config中拉出了httpErrors以及重定向和隐藏规则-从那时起,它运行得很好,没有500s(敲栈木)。

我们昨天还在isapi_redirect.log中发现了这些错误:

[Wed Jan 29 13:18:58.021 2020] [9056:9196] [error] uri_worker_map_update::jk_uri_worker_map.c (1299): Unable to stat the D:\ColdFusion2018\config\wsconfig\1\uriworkermap.properties (errno=2)
[Wed Jan 29 13:20:44.970 2020] [9056:9196] [error] uri_worker_map_update::jk_uri_worker_map.c (1299): Unable to stat the D:\ColdFusion2018\config\wsconfig\1\uriworkermap.properties (errno=2)

当更改web.config时,它们也停止了。因此,问题是,在与查理·阿里哈特(Charlie Arehart)大师一起工作了2 1/2小时之后,最终没有确切的答案,还有其他人看到过类似的东西吗?我们还要看什么?自服务器上all个站点更改为web.config以来,零错误为500。

tomcat iis url-rewriting coldfusion isapi-redirect
1个回答
0
投票

对于这种问题,您提供的请求跟踪日志信息没有足够的信息。如果要解决此类问题,则需要捕获应用程序的转储以查看发生了什么。我建议您可以为该过程生成一个完整的转储,并使用debugdialog分析来分析转储文件以通过使用debug找出原因

您可以从此url下载它。

关于如何捕获转储,您可以参考此article。注意:您应该选择崩溃而不是性能。

关于如何使用debugdialog分析来分析转储文件,您可以参考此article

© www.soinside.com 2019 - 2024. All rights reserved.