现在的位置: 首页 > 综合 > 正文

页面报“访问遭到拒绝”时,该如何解决?

2012年01月17日 ⁄ 综合 ⁄ 共 2316字 ⁄ 字号 评论关闭
文章目录

错误如下:(访问遭到拒绝)

===========================================================================

在 System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)

在 System.Management.ManagementScope.InitializeGuts(Object o)

在 System.Management.ManagementScope.Initialize()

在 System.Management.ManagementObject.Initialize(Boolean getObject)

在 System.Management.ManagementClass.GetInstances(EnumerationOptions options)

在 System.Management.ManagementClass.GetInstances()

在 a7.a()

在 a7.b(String A_0)

在 a7.a(LicenseContext A_0, Type A_1, Object A_2, Boolean A_3)

在 System.ComponentModel.LicenseManager.ValidateInternalRecursive(LicenseContext context, Type type, Object instance, Boolean allowExceptions, License& license, String& licenseKey)

在 System.ComponentModel.LicenseManager.ValidateInternal(Type type, Object instance, Boolean allowExceptions, License& license)

在 System.ComponentModel.LicenseManager.Validate(Type type, Object instance)

在 Bingosoft.Workflow.Providers.OrganizationProvider.get_DefaultProvider()

在 InfoWeb.WayGoExtension.ToWorkflowUser(IUser wUser)

===========================================================================

故障原因:

由于在License校验时需要读取服务器的机器码进行校对,但访问站点的ASPNET帐户不具备访问服务器设备信息的权限导致此故障。

解决方法:(来自听棠.NET的博客)

===========================================================================

使用 System.Management 和 WMI

Windows Management Instrumentation (WMI) 具有强大的管理功能,您可以用它来管理和监视基于 Windows 的计算机。但是,当 ASP.NET 应用程序以 ASPNET 帐户运行时,此帐户只具有与“所有人”相同的默认访问权限。这些权限包括为本地计算机上的提供程序读取 WMI 数据、写入提供程序数据和执行方法。有关 WMI 安全机制的更多信息,请参见 WMI Platform SDK 文档或 MSDN。
注意:在没有 Service Pack 3 (SP3) 或更高版本的 Windows 2000 上,或在没有 Service Pack 1 (SP1) 或更高版本的 Windows XP 上,以 ASPNET 帐户运行的 ASP.NET Web 应用程序可能无法运行,并且您可能会收到“Access Denied (0x80041003)”(访问被拒绝 (0x80041003))错误信息。发生此错误是因为该帐户不具有足够的权限来访问某些 WMI 命名空间。若要解决此问题,请安装 Windows XP SP1 或更高版本,或者安装 Windows 2000 SP3 或更高版本。为变通解决此问题,请按照下列步骤操作:

1.

打开“计算机管理”Microsoft 管理控制台 (MMC) 管理单元。

2.

展开服务和应用程序,然后选择 WMI 控制

3.

右键单击 WMI 控制,然后单击属性

4.

WMI 控制属性对话框中,单击安全选项卡。

5.

展开根目录,选择 CIMV2,然后单击安全

6.

在出现的安全对话框中,单击高级

7.

访问控制设置对话框,单击添加。选择本地计算机名\NETWORK SERVICE,然后单击确定

8.

权限项目对话框中,确保应用到设置为这个名称空间和子名称空间

9.

确保选中 Allow 'Enable Account'(允许“启用帐户”)和 Allow 'Remote Enable'(允许“远程启用”)复选框。

10.

单击确定直到出现 WMI Control Properties(WMI 控制属性)对话框。

11.

为您的应用程序将访问的其他 WMI 命名空间重复第 5 步到第 10 步。

12.

重新启动 IIS。为此,请从命令行运行 IISRESET。

默认情况下,ASP.NET 为 ASPNET 帐户生成保密性强的密码。因此,只要该 ASPNET 帐户密码在计算机之间不是共享的或重置为非默认值的其他值,此替代方法就是安全的。

===========================================================================

抱歉!评论已关闭.