Tengo un servidor ASP.NET al que no tengo acceso directo. ¿Cómo puedo escribir una aplicación .NET que determinará programáticamente si ASP.NET está ejecutando 32 bits frente a 64 bits?¿Cómo se determina el uso de ASP.NET de 32 bit frente a 64 bit?
5
A
Respuesta
4
ya ha respondido aquí:
How do I tell if my application is running as a 32-bit or 64-bit application?
1
Puede utilizar PInvoke
Este es un ejemplo de código encontró here.
private enum Platform
{
X86,
X64,
Unknown
}
internal const ushort PROCESSOR_ARCHITECTURE_INTEL = 0;
internal const ushort PROCESSOR_ARCHITECTURE_IA64 = 6;
internal const ushort PROCESSOR_ARCHITECTURE_AMD64 = 9;
internal const ushort PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF;
[StructLayout(LayoutKind.Sequential)]
internal struct SYSTEM_INFO
{
public ushort wProcessorArchitecture;
public ushort wReserved;
public uint dwPageSize;
public IntPtr lpMinimumApplicationAddress;
public IntPtr lpMaximumApplicationAddress;
public UIntPtr dwActiveProcessorMask;
public uint dwNumberOfProcessors;
public uint dwProcessorType;
public uint dwAllocationGranularity;
public ushort wProcessorLevel;
public ushort wProcessorRevision;
};
[DllImport("kernel32.dll")]
internal static extern void GetNativeSystemInfo(ref SYSTEM_INFO lpSystemInfo);
private static Platform GetPlatform()
{
SYSTEM_INFO sysInfo = new SYSTEM_INFO();
GetNativeSystemInfo(ref sysInfo);
switch (sysInfo.wProcessorArchitecture)
{
case PROCESSOR_ARCHITECTURE_AMD64:
return Platform.X64;
case PROCESSOR_ARCHITECTURE_INTEL:
return Platform.X86;
default:
return Platform.Unknown;
}
}
2
La manera más fácil es hacer esto:
Int32 addressWidth = IntPtr.Size * 8;
desde IntPtr.Size
es de 4 bytes en arquitectura de 32 bits y 8 bytes en la arquitectura de 64 bits.
Cuestiones relacionadas
- 1. Tamaños de estructuras en 32 bit y 64 bit
- 2. Compilar ASP.NET a 64 BIT
- 3. Convertir 32 bit dll a 64 bit dll
- 4. Comprensión del tamaño de objeto CLR entre 32 bit frente a 64 bit
- 5. Python: aritmética bit a bit sin signo de 32 bit
- 6. .net Utilidad InstallUtil - 32 bit vs 64 bit
- 7. .net console app 32 vs 64 bit
- 8. Operador bit a bit para obtener bytes de 32 bits
- 9. Java performance 64 bit
- 10. Conversión Delphi 32 a Delphi XE2 (64 bit)
- 11. Error del ensamblador: Mach-O 64 bit no admite direcciones absolutas de 32 bit
- 12. CGFloat: redondo, piso, abs y precisión de 32/64 bit
- 13. manera portátil de lidiar con 64/32 bit time_t
- 14. Cómo puedo escribir un instalador para 32 y 64 bit
- 15. Identificación de la máquina de destino (32 bit o 64 bit) con implementación ClickOnce
- 16. ¿Funciona con matlab de 32 o 64 bit?
- 17. Agregando soporte de 64 bit al código existente de 32 bit, ¿es difícil?
- 18. Ejecutando código de ensamblado de 32 bits en un procesador Linux y 64 bit de 64 bit: explique la anomalía
- 19. SWT en Windows 64-bit
- 20. C# Access 64 bit Registro
- 21. ¿Cómo obtengo libpam.so.0 (32 bit) en mi 64 bit RHEL6?
- 22. Diferentes referencias de ensamblado .NET según 32-64 bit
- 23. dll de 32 bits en Office 64 bit
- 24. Java 64 bit Pregunta JDK
- 25. 64 bit Introducción a la Asamblea
- 26. Cuándo usar Eclipse 64 bit
- 27. ¿Por qué es esto más rápido en 64 bit que en 32 bit?
- 28. qt aplicación 64 bit windows
- 29. Cambios usando Winspool.drv en Windows 7 64 bit desde Windows XP 32 bit
- 30. 64 bit enum en C++?
Esta es una buena solución si su aplicación se está ejecutando .NET con un x86 forzada compilar bandera por otras razones, pero que todavía tienen que determinar si el sistema anfitrión es 64 poco. – Mike