我有一个我没有直接访问的ASP.NET服务器。我如何编写一个.NET应用程序,以编程方式确定ASP.NET是否正在运行32位与64位?如何确定32位与64位ASP.NET正在使用?
5
A
回答
4
1
您可以使用PInvoke
这是一个代码示例发现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
最简单的方法是做到这一点:
Int32 addressWidth = IntPtr.Size * 8;
因为IntPtr.Size
是4个字节在32位体系结构和在64位架构的8个字节。
相关问题
- 1. 确定64位与32位Windows
- 2. 正确处理32/64位
- 3. 确定JRE架构32位和64位
- 4. Java JDK 32位与64位
- 5. SHGetFolderPath()32位与64位
- 6. 32位与64位定制框架
- 7. 32与64位GC
- 8. 32与64位JVM
- 9. 使用正确的第三方32位或64位汇编
- 10. 在MinGW 32-bit上确定64位文件大小C使用MinGW 32位
- 11. 如何确定System.Diagnostics.Process是32位还是64位?
- 12. 在Windows 7 64位上使用Java 32位的Eclipse 32位
- 13. asp.net中的64位和32位机器
- 14. 如何使用virtualenv在Windows中使用32位和64位Python?
- 15. C# - 在32位和64位
- 16. 在32位和64位
- 17. 如何在win 7上定位32位flash播放器64位
- 18. 如何确定使用Java的Windows的32位或64位体系结构?
- 19. 如何使用Java API确定文件是32位还是64位?
- 20. 使用WMI,我如何确定远程进程是32位还是64位?
- 21. XOR高32位,低32位,64位数
- 22. MySQL 32位或64位 - Apache 32位Windows 64位?
- 23. Windows 7 64位不正确PATH当加载32位库的32位exe
- 24. 如何在64位应用程序中使用win 32位dll
- 25. 如何在Windows 64位中使用python调用32位exes?
- 26. MySQL的ODBC 32与64位
- 27. Java和Eclipse - 32与64位
- 28. 32位或64位?使用C代码
- 29. 使用64位构建32位llvm-gcc
- 30. 使用64位和32位JDK
这是一个很好的解决方案,如果你的.NET应用程序与强制x86上运行编译标志等原因,但你仍然需要确定主机系统64位。 – Mike 2009-12-17 13:54:27