我有一個我沒有直接訪問的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. SHGetFolderPath()32位與64位
- 3. 32與64位GC
- 4. 使用正確的第三方32位或64位彙編
- 5. 如何確定System.Diagnostics.Process是32位還是64位?
- 6. 在Windows 7 64位上使用Java 32位的Eclipse 32位
- 7. C# - 在32位和64位
- 8. 如何在win 7上定位32位flash播放器64位
- 9. 如何確定使用Java的Windows的32位或64位體系結構?
- 10. 使用WMI,我如何確定遠程進程是32位還是64位?
- 11. XOR高32位,低32位,64位數
- 12. Windows 7 64位不正確PATH當加載32位庫的32位exe
- 13. 如何在64位應用程序中使用win 32位dll
- 14. 如何在Windows 64位中使用python調用32位exes?
- 15. Java和Eclipse - 32與64位
- 16. MySQL的ODBC 32與64位
- 17. 使用64位插件的Excel 32位
- 18. 使用64位構建32位llvm-gcc
- 19. 32位或64位?使用C代碼
- 20. 32位Excel宏與64位不兼容
- 21. .NET 32位開發與64位生產
- 22. linux上的QtCreator:32位與64位
- 23. Macintosh Python:64位與32位問題
- 24. 32位與64位浮點性能
- 25. 64位到32位Interop - 如何?
- 26. 如何在64位PHP安裝中使用32位整數?
- 27. 如何在MSIE 32位上使用Watin 64位
- 28. Xcode&64位&32位問題
- 29. 64位weblogic 32位oracle DB
- 30. 64位的32位除法
這是一個很好的解決方案,如果你的.NET應用程序與強制x86上運行編譯標誌等原因,但你仍然需要確定主機系統64位。 – Mike 2009-12-17 13:54:27