FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 6150|回复: 3
打印 上一主题 下一主题

【专业版】GetRequestIPMAC出现异常(Provider failure, COMException)

[复制链接]
跳转到指定楼层
楼主
发表于 2014-12-1 17:20:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2014-12-2 11:04:51 | 只看该作者
已确认问题出在这个函数中: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. }
复制代码



板凳
发表于 2014-12-11 16:20:02 | 只看该作者
刚才有客户也遇到这个问题,说是关闭服务器的 UAC 就行了,分享如下。







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
地板
发表于 2015-5-6 12:15:43 | 只看该作者


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






参考:
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/



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-23 19:25 , Processed in 0.045054 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表