2011-04-29 21 views
0

我有以下代码段。针对同一代码的网页和桌面应用程序的不同结果

在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(); 

下面是相同的代码

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

可能会因两件事情引起的LINQ的免费版本:

这两个动作可以危及安全,但第一个提供了更多的选择,通过设置ACL来解决这个问题。

+0

感谢您的回答。该问题已通过将帐户更改为“本地服务”或“本地系统”解决。因为,将帐户设置为“本地系统”被认为是风险。我将该帐户设置为“本地服务”,并在网站文件夹中赋予了该权限。感谢您再次回复... – 2011-04-29 04:23:01

+0

http://technet.microsoft.com/en-us/library/cc771170(WS.10).aspx 了解更多详情,对于稍后看到此问题的人... – 2011-04-29 04:24:27

相关问题