У нас есть несколько приложений, работающих на одном сайте IIS, но одно из них необходимо запускать в 32-разрядном пуле приложений из-за того, что оно использует старую библиотеку.
Однако в настоящее время мы не можем этого сделать, потому что на родительском сайте настроены два 64-разрядных фильтра ISAPI, что означает, что IIS выдает Calling LoadLibraryEx on ISAPI filter
ошибка при попытке доступа к приложению, запущенному в 32-битном пуле приложений.
Я нашел <isapiFilters>
элемент конфигурации (ссылка), но добавив это в файл web.config приложения с помощью <remove>
элементы для каждого из фильтров, которые я хочу отключить, ничего не делают:
<isapiFilters>
<remove name="FILTER_1_NAME" />
<remove name="FILTER_2_NAME" />
</isapiFilters>
Я действительно не хочу отключать эти фильтры для всех приложений, работающих на этом сайте, просто ради этого.
Есть ли способ сделать это на уровне приложения?
Нет, согласно документация, isapiFilters можно определить только на уровне сервера или сайта.
Вы можете поместить 32-битное приложение на отдельный сайт, а затем переписывать URL-адрес каждого запроса для него с основного сайта. Но это может привести к большему количеству проблем / работы в зависимости от вашего приложения.