Назад | Перейти на главную страницу

II7 - Отображение обработчика не запускается

Я создал сопоставление обработчика сценария на 64-битной Windows 2008 с IIS 7. 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. Почему не работает отображение?

Вероятно, вы захотите убедиться, что ваш пул приложений установлен на 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

Вы также можете добавить новый пул приложений только для этого:

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