II7 - 处理程序映射未运行

II7 - 处理程序映射未运行

我在装有 IIS 7 的 Windows 2008 64 位上创建了一个脚本处理程序映射。处理程序 dll 从未被调用,并且我收到 404 错误。在仅运行 32 位 Windows 2008 的相同机器上,它运行良好。以下是 web.config 中的处理程序映射:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="DeltekTE" path="*.jsp" verb="*" modules="IsapiModule" scriptProcessor="D:\NewTime\DeltekTC\iisproxy.dll" resourceType="Unspecified" preCondition="bitness32" />
            <add name="DeltekTC" path="*.msv" verb="*" modules="IsapiModule" scriptProcessor="D:\NewTime\DeltekTC\iisproxy.dll" resourceType="Unspecified" preCondition="bitness32" />
        </handlers>
    </system.webServer>
</configuration>

在服务器级别的 ISAPI 和 CGI​​ 限制中,允许运行该 dll。网络服务用户和 IIS_USRS 可以读取和执行该 dll。为什么映射不起作用?

答案1

您可能需要确保您的应用程序池设置为 32 位,而不仅仅是您的处理程序。

尝试查看 IIS 管理器中的应用程序池,单击应用程序池,然后单击高级设置。将“启用 32 位应用程序”更改为 true。

您也可以使用 AppCMD 来更改此设置:

C:\Windows\System32\inetsrv\AppCMD.EXE SET AppPool "DefaultAppPool" /enable32BitAppOnWin64:true

您需要将“DefaultAppPool”更改为应用程序池名称:

C:\Windows\System32\inetsrv\AppCMD.EXE LIST AppPool

您还可以为此添加一个新的 AppPool:

C:\Windows\System32\inetsrv\AppCMD.EXE ADD AppPool /name:"New32BitPool"
C:\Windows\System32\inetsrv\AppCMD.EXE SET AppPool "New32BitPool" /enable32BitAppOnWin64:true

相关内容