У меня есть два сайта на сервере: один для производства, а другой для тестирования. В производственном есть код, который развернул сотрудник, которого уже нет с нами. Этот сайт работает. Другой сайт, который мы только что развернули; он был скомпилирован для любого процессора, и мы получаем ошибки при загрузке драйверов Oracle.
Если я просматриваю рабочий процесс IIS для производственного сайта в обозревателе процессов SysInternal , выделите рабочий процесс IIS и просмотрите загруженные библиотеки DLL в нижней панели. Я вижу некоторые странные данные.
Информация о рабочем процессе:
Код: Выделить всё
Process Version User Name PID Image Type
w3wp.exe 6.0.3790.3959 NT AUTHORITY\NETWORK SERVICE 3320 64-bit
Подмножество информации об дескрипторе DLL:
Код: Выделить всё
Name Image Type Description Company Name Version
aspnet_filter.dll 64-bit Microsoft ASP.NET ISAPI Filter DLL Microsoft Corporation 4.0.30319.1
admwprox.dll 64-bit IIS Admin Com API Proxy dll Microsoft Corporation 6.0.3790.3959
adsldp.dll 64-bit ADs LDAP Provider DLL Microsoft Corporation 5.2.3790.3959
adsldpc.dll 64-bit ADs LDAP Provider C DLL Microsoft Corporation 5.2.3790.3959
advapi32.dll 64-bit Advanced Windows 32 Base API Microsoft Corporation 5.2.3790.4555
aspnet_filter.dll 64-bit Microsoft ASP.NET ISAPI Filter DLL Microsoft Corporation 4.0.30319.1
aspnet_isapi.dll 64-bit Microsoft ASP.NET ISAPI Shim DLL Microsoft Corporation 2.0.50727.3053
comctl32.dll 64-bit Common Controls Library Microsoft Corporation 5.82.3790.4770
comctl32.dll 64-bit User Experience Controls Library Microsoft Corporation 6.0.3790.4770
comres.dll 64-bit COM+ Resources Microsoft Corporation 2001.12.4720.3959
(Next few are our DLLs)
CSA.Database.DLL 32-bit CSA.Database TE 1.7.8221.0
CSA.Database.DLL 32-bit CSA.Database TE 1.7.8221.0
CSA.Loggers.DLL 32-bit CSA.Loggers TE 1.7.8221.0
CSA.Loggers.DLL 32-bit CSA.Loggers TE 1.7.8221.0
CSA.Network.DLL 32-bit CSA.Network TE 1.7.8221.0
CSA.Network.DLL 32-bit CSA.Network TE 1.7.8221.0
Enterprise.Data.DLL 32-bit Enterprise.Data TE 2.35.3.0
Enterprise.Data.DLL 32-bit Enterprise.Data TE 2.35.3.0
Enterprise.Diagnostics.DLL 32-bit Enterprise.Diagnostics TE 2.35.3.0
Enterprise.Diagnostics.DLL 32-bit Enterprise.Diagnostics TE 2.35.3.0
(More Microsoft DLLs... some 32-bit, some 64-bit??)
FederatedLibrary.DLL 32-bit FederatedLibrary Microsoft 1.0.0.0
FederatedLibrary.DLL 32-bit FederatedLibrary Microsoft 1.0.0.0
gdi32.dll 64-bit GDI Client DLL Microsoft Corporation 5.2.3790.4396
gzip.dll 64-bit GZIP Compressn DLL Microsoft Corporation 6.0.3790.1830
Microsoft.Practices.EnterpriseLibrary.Common.DLL 32-bit Enterprise Library Shared Library Microsoft Corporation 4.1.0.0
Microsoft.Practices.EnterpriseLibrary.Common.DLL 32-bit Enterprise Library Shared Library Microsoft Corporation 4.1.0.0
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.DLL 32-bit Enterprise Library Exception Handling Application Block Microsoft Corporation 4.1.0.0
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.DLL 32-bit Enterprise Library Exception Handling Application Block Microsoft Corporation 4.1.0.0
Microsoft.Practices.EnterpriseLibrary.Logging.DLL 32-bit Enterprise Library Logging Application Block Microsoft Corporation 4.1.0.0
Microsoft.Practices.EnterpriseLibrary.Logging.DLL 32-bit Enterprise Library Logging Application Block Microsoft Corporation 4.1.0.0
(And finally, the Oracle drivers that seem to be causing issue... 64-bit)
oracle.dataaccess.dll 64-bit Oracle.DataAccess.dll Oracle Corporation 2.112.1.0
oracle.dataaccess.dll 64-bit Oracle.DataAccess.dll Oracle Corporation 2.112.1.0
Код: Выделить всё
C:\SingleSignOn\bin>corflags CSA.Network.dll
Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 1
ILONLY : 1
32BIT : 0
Signed : 0
Что мне нужно знать:
- IIS работает как 64-битный процесс и будет ли он загружать любые библиотеки DLL процессора как 64-битные?
- Если да, то почему эти библиотеки DLL перечислены Process Explorer в виде 32-битных изображений?
- Может ли IIS загружать 32-битные библиотеки DLL в 64-битное пространство процесса?
- Если IIS — 64-битный процесс, и мы загружаем веб-сайт, скомпилированный как Any CPU, будет ли он принудительно становиться 32-битным, если какая-либо из библиотек DLL, от которых он зависит, является 32-битными DLL (например, он был скомпилирован с 32-битным процессором) -битная версия драйверов Oracle?)
Подробнее здесь: https://stackoverflow.com/questions/782 ... lls-loaded
Мобильная версия