【问题标题】:WMI calls from WebService来自 WebService 的 WMI 调用
【发布时间】:2010-09-13 15:15:18
【问题描述】:

因此,我创建了一个与包含在 WMI 命名空间中的一组数据交互的 Web 服务。当我在内置开发 Web 服务器中使用 ASP.net 运行它时,它工作正常,并按要求返回数据。但是,当我将它发布到 IIS 6 服务器(win 2003)时,Web 服务不再允许我执行 WMI 方法调用。但是,它确实让我仍然可以从中阅读。

相反,它给了我:

System.Management.ManagementException: 访问被拒绝 System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus 错误代码)在 System.Management.ManagementObject.InvokeMethod(字符串 方法名,ManagementBaseObject inParameters, InvokeMethodOptions 选项)在 System.Management.ManagementObject.InvokeMethod(字符串 方法名,对象[] 参数)

我已尝试通过将“Everyone”组添加到该 WMI 命名空间安全设置并给予他们完整的权限(这包括执行)。然后重置IIS。但是我仍然收到此错误。

有人有什么想法吗?

【问题讨论】:

  • 澄清...是否所有 WMI 调用都失败? “但是它确实让我仍然可以阅读它”是什么意思。 ?

标签: web-services iis-6 wmi asmx


【解决方案1】:

以“正确”用户帐户的身份使用 IIS 运行应该可以工作。

“每个人”组并不意味着“绝对每个人”——它的意思是“每个经过身份验证的用户”。如果您无法进行身份验证,您仍然不是每个人的一部分。如果您正在寻找需要网络权限的 WMI 资源,那么它仍然会失败。

除此之外,访问 WMI 可能需要默认帐户 IIS 运行时没有的用户权限。

【讨论】:

  • 可能可以将 IIS 更改为哪个服务帐户运行?它在 some 用户处运行。
【解决方案2】:

嗯,从技术上讲,每个人和“经过身份验证的用户”是不同的。

Everone 包括“guest”帐户和“guests”组、null 和匿名连接。每个人每个人。 “经过身份验证的用户”是提供凭据的任何人。有点微妙,但很重要。

如果访客被禁用,那么我相信它们在所有实际用途上都是相同的,尽管每个人都可能包括“空”和“匿名”会话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    相关资源
    最近更新 更多