FineUI 官方论坛

标题: 【专业版】GetRequestIPMAC出现异常(Provider failure, COMException) [打印本页]

作者: todd    时间: 2014-12-1 17:20
标题: 【专业版】GetRequestIPMAC出现异常(Provider failure, COMException)
[attach]6879[/attach]
[attach]7558[/attach]

作者: sanshi    时间: 2014-12-2 11:04
已确认问题出在这个函数中:GetRequestIPMAC,可能是 IIS 中 ASP.NET 进程的权限问题,但还未解决
附函数源码:

  1. /// <summary>
  2. /// 获取当前请求的服务器IP,以及相应的MAC地址
  3. /// </summary>
  4. /// <returns>[当前请求的服务器IP,MAC地址]</returns>
  5. public string[] GetRequestIPMAC()
  6. {
  7.         string[] result = new string[2];

  8.         string serverName = Page.Request.ServerVariables["SERVER_NAME"];
  9.         string requestServerIP = Page.Request.ServerVariables["LOCAL_ADDR"];

  10.         if (serverName == "localhost")
  11.         {
  12.                 result[0] = "localhost";
  13.         }
  14.         else
  15.         {
  16.                 result[0] = requestServerIP.ToLower();

  17.                 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
  18.                 ManagementObjectCollection moc = mc.GetInstances();
  19.                 foreach (ManagementObject mo in moc)
  20.                 {
  21.                         try
  22.                         {
  23.                                 if ((bool)mo["IPEnabled"] == true)
  24.                                 {
  25.                                         string[] IPAddresses = (string[])mo["IPAddress"];
  26.                                         if (IPAddresses.Length > 0)
  27.                                         {
  28.                                                 for (int i = 0; i < IPAddresses.Length; i++)
  29.                                                 {
  30.                                                         if (IPAddresses[i] == requestServerIP)
  31.                                                         {
  32.                                                                 result[1] = mo["MacAddress"].ToString().ToLower();
  33.                                                                 break;
  34.                                                         }
  35.                                                 }
  36.                                         }

  37.                                         if (!String.IsNullOrEmpty(result[1]))
  38.                                         {
  39.                                                 break;
  40.                                         }
  41.                                 }
  42.                         }
  43.                         finally
  44.                         {
  45.                                 mo.Dispose();
  46.                         }
  47.                 }
  48.         }


  49.         return result;
  50. }
复制代码




作者: sanshi    时间: 2014-12-11 16:20
刚才有客户也遇到这个问题,说是关闭服务器的 UAC 就行了,分享如下。

[attach]6925[/attach]

[attach]6926[/attach]

[attach]6928[/attach]


作者: sanshi    时间: 2015-5-6 12:15


可以尝试的解决办法:
1. 首先执行命令行: iisreset
2. 将网站所属的应用程序池(App Pool)的 加载用户配置文件(Load User Profile)设为 true

[attach]7464[/attach]

[attach]7465[/attach]


参考:
https://social.msdn.microsoft.co ... forum=csharpgeneral
http://blogs.msdn.com/b/asiatech ... ofile-in-iis-7.aspx
http://www.avianwaves.com/Blog/e ... nstalled-Error.aspx
http://q.cnblogs.com/q/54160/








欢迎光临 FineUI 官方论坛 (https://www.fineui.com/BBS/) Powered by Discuz! X3.4