我有一個我沒有直接訪問的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