我在IIS 7.5中安装了ASP.NET 4.0 Web窗体应用程序。如果我将应用程序池设置为 DefaultAppPool (.NET Framework 2.0),我会在配置页面上显示提供程序,.NET-Roles和.NET用户的图标IIS管理器中的应用程序,我可以管理IIS中的用户和角色。 (我正在使用Forms身份验证。)
但是如果我将应用程序池设置为 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管理器无法找到新的GAC for .NET 4?我是否必须将一些新的4.0程序集添加到 administration.config ?是否有另一种方法来添加用户和角色而不是IIS?
提前感谢您的帮助!
答案 0 :(得分:10)
有一个简单的解决方法比构建管理页面容易得多。
在您的服务器上创建一个新网站。您可以将其命名为MembershipAdminstrationYourActualSiteName。绑定无关紧要,因为您不会在此站点上执行任何页面,但请确保它在2.0默认应用程序池中运行。
将web.config从4.0站点复制到新站点的文件夹。编辑文件,删除除connectionString,authentication,memebership,roleManager和profile部分之外的所有内容。
现在在IIS管理器中访问.NET角色和.NET用户。假设您正确编辑了web.config文件,您应该会看到4.0应用程序的用户和角色。
答案 1 :(得分:9)
不幸的是,如果您的应用程序池使用.NET 4.0,则目前不支持这些功能,因为这需要IIS管理器加载.NET 4.0框架才能调用正确的提供程序(这就是.NET Users / Membership的原因) ,.NET角色等),由于IIS管理器是.NET 2.0应用程序,因此无法实现。
所以目前没有好的解决方法,除了暂时将应用程序池更改为2.0并添加它们然后切换回4.0。但是,除非它只是一台开发机器,否则你不应该这样做。
否则,你可以使用CreateUserWizard控件构建一个页面,并使用ASP.NET内置的Login控件,它应该是一行(标记)来获得类似的功能。