针对相同代码的Web和桌面应用程序的不同结果

时间:2011-04-29 03:28:59

标签: c# .net asp.net c#-3.0 wmi

我有以下代码。

在Web和桌面应用程序的情况下,在同一台计算机上运行时会返回不同的结果。

这是我的代码。请指导我如何处理这个???

    var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");

    return (from ManagementObject wmiHD in searcher.Get()
            select wmiHD["SerialNumber"] == null ? "VM HD" : wmiHD["SerialNumber"].ToString()).ToList();

这是相同代码的无LINQ版本

    var hdCollection = new List<string>();
    var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");

    foreach (ManagementObject wmiHD in searcher.Get())
    {
        // get the hardware serial no.
        if (wmiHD["SerialNumber"] == null)
        {
            hdCollection.Add("VM HD");
        }
        else
        {
            hdCollection.Add(wmiHD["SerialNumber"].ToString());
        }
    }
    return hdCollection;

1 个答案:

答案 0 :(得分:1)

这可能是由两件事引起的:

这两个操作都可能危及安全性,但第一个操作通过设置ACL提供了更多选择来解决此问题。