2

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

相反,它给了我:

System.Management.ManagementException: 在 System.Management.ManagementObject.InvokeMethod(String methodName, ManagementBaseObject inParameters, InvokeMethodOptions options) 在 System.Management.ManagementObject.InvokeMethod(String methodName,对象 [] 参数)

我试图解决这个问题(是的,我知道这是一个不好的做法,但我只是想看看它是否会起作用),方法是将“每个人”组添加到该 WMI 命名空间安全设置并给予他们完整的权限(包括执行) . 然后重置IIS。但是我仍然收到此错误。

有人有什么想法吗?

4

2 回答 2

3

使用 IIS 作为“正确”用户帐户运行应该可以。

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

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

于 2008-09-27T00:29:18.607 回答
0

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

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

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

于 2008-09-30T18:06:14.437 回答