web-services - 来自 WebService 的 WMI 调用

标签 web-services iis-6 wmi asmx

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

相反,它给了我:

System.Management.ManagementException: Access denied at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode) at System.Management.ManagementObject.InvokeMethod(String methodName, ManagementBaseObject inParameters, InvokeMethodOptions options) at System.Management.ManagementObject.InvokeMethod(String methodName, Object[] args)

我尝试通过将“Everyone”组添加到 WMI 命名空间安全设置并授予他们完全权限(是的,我知道这是一个不好的做法,但我只是想看看它是否有效)来解决此问题(是的,我知道这是一个不好的做法,但我只是想看看它是否有效)包括执行)。然后重置IIS。但是我仍然收到此错误。

有人有什么想法吗?

最佳答案

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

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

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

关于web-services - 来自 WebService 的 WMI 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/142453/

相关文章:

java - Vaadin 消耗 REST 和性能

java - JAX-WS 处理程序 - handleMessage 未运行

c# - 为什么我的 ServiceStack 服务会抛出异常?

c# - 您能否拥有一个从仅具有用户级权限的客户端应用程序链接的具有管理员权限的 DLL?

vbscript - 杀死所有具有特定名称的进程

javascript - ASP.Net jQuery AJAX 调用不起作用

asp.net-mvc - 如何使 ASP.NET MVC 在 IIS 6 中工作?

error-handling - IHttpModule 实现的错误处理在 IIS6 中不起作用,在 IIS5.1 中起作用

asp.net - 如何检查IIS是32位还是64位模式

python - 使用 Python 获取 Windows 8.1 进程列表