12

我在 IIS 7.5 中安装了一个 ASP.NET 4.0 Web 表单应用程序。如果我将应用程序池设置为DefaultAppPool (.NET Framework 2.0),我会在 IIS 管理器中的应用程序配置页面上显示Providers、.NET-Roles 和 .NET-Users的图标,并且我可以在 IIS 中管理用户和角色. (我正在使用表单身份验证。)

但是,如果我将应用程序池设置为ASP.NET v4.0,我会遇到一个问题:双击 IIS 管理器中的用户或角色的图标会抛出一个错误,告诉我我无法使用这些功能,因为无法将提供程序确定为信任。如果我在trustedProviders部分的administration.config中设置allowUntrustedProviders="true"并再次双击其中一个图标,我会收到程序集System.Web,版本4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a不能的错误被发现。如果我重新启动 IIS 管理器,图标会完全消失。

.NET Framework 4.0 肯定已安装。所以这一切都很令人困惑。我知道 .NET 4 使用的 GAC 不同于 .NET 2-3 的旧 GAC。IIS 管理器是否有可能无法找到适用于 .NET 4 的新 GAC?我是否必须将一些新的 4.0 程序集添加到Administration.config中?是否有另一种方法来添加用户和角色而不是 IIS?

提前感谢您的帮助!

4

2 回答 2

10

有一个简单的解决方法比构建管理页面要容易得多。

  1. 在您的服务器上创建一个新站点。您可以将其命名为 MembershipAdminstrationYourActualSiteName。绑定无关紧要,因为您不会在此站点上执行任何页面,但请确保它在 2.0 默认应用程序池中运行。

  2. 将 web.config 从 4.0 站点复制到新站点的文件夹。编辑文件,删除除连接字符串、身份验证、成员身份、角色管理器和配置文件部分之外的所有内容。

  3. 现在在 IIS 管理器中访问 .NET 角色和 .NET 用户。假设您正确编辑了 web.config 文件,您应该会看到 4.0 应用程序的用户和角色。

于 2011-02-14T16:36:20.357 回答
9

不幸的是,如果您的应用程序池正在使用 .NET 4.0,则目前不支持这些功能,因为这需要 IIS 管理器加载 .NET 4.0 框架才能调用正确的提供程序(这就是为什么 .NET 用户/会员、.NET角色等),这是不可能的,因为 IIS 管理器是一个 .NET 2.0 应用程序。

因此,目前没有好的解决方法,除了将您的应用程序池临时更改为 2.0 并添加它们,然后切换回 4.0。但是当然你不应该这样做,除非它只是一个开发机器。

否则,您可以使用 CreateUserWizard 控件构建页面并使用 ASP.NET 中的内置登录控件,这应该是一行(标记)以获得类似的功能。

于 2010-06-22T04:41:41.820 回答