自定义MyMembership,运行时报错web.config中无法找到程序集
请大家帮忙看看,哪里写错了啊!!!!!!1运行时报错,并且在asp.net网站管理工具中可以看到自定义的mymembership,但是在"安全"一栏中显示:
===========================================================================================================
选定的数据存储区出现问题,原因可能是服务器名称或凭据无效,或者权限不足。也可能是未启用角色管理器功能造成的。请单击下面的按钮,以重定向到可以选择新数据存储区的页面。
下面的消息可能会有助于诊断问题: 未能加载文件或程序集“MembershipAndRole.BusinessLogicLayer.MyMembershipProvider”或它的某一个依赖项。系统找不到指定的文件。 (c:\users\administrator\documents\visual studio 2010\Projects\MembershipAndRole\Web\web.config line 18)
=====================================================================================================
1)项目名称MembershipAnndRole,
2)类库名称BusinessLogicLayer,在该类库下创建MyMembershipProvider.cs
3)数据库使用vs2010自带的.\sqlexpress,名为MyDB
4)Web.config:
<configuration>
<connectionStrings>
<add name="MyDBConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDB.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<membership defaultProvider="MyMembershipProvider">
<providers>
<clear/>
<add name="MyMembershipProvider" type="MembershipAndRole.BusinessLogicLayer.MyMembershipProvider,MembershipAndRole.BusinessLogicLayer"/>
</providers>
</membership>
</system.web>
</configuration>
--------------------编程问答-------------------- 检查名称空间是否正确
MyMembershipProvider是否编译成功 --------------------编程问答-------------------- 已经检查过了命名空间没有问题,编译成功. --------------------编程问答--------------------
如果是独立的dll
.net版本是否正确, --------------------编程问答-------------------- 我用的是VS2010,默认应该是.net4.0版本呀, 请问楼上应该如何检查.net版本呢,谢谢. --------------------编程问答-------------------- 这个原因很简单。你没有指明是在那个程序集。所在系统不知道从那个程序集加载,因此指定type时要用 AssemblyQualifiedName系统才能加载这个类型。
以下两种方法都可以:
<add name="SajMembershipProvider" type="saj.AppData.SajMembershipProvider, saj.AppData"/>
<add name="SajMembershipProvider" type="saj.MyProviders.SajMembershipProvider, saj.AppData, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"> --------------------编程问答-------------------- 你看看是不是MembershipProvider所在的程序集的名称是不是MembershipAndRole.BusinessLogicLayer,如果不是的话改过来就可以了。
补充:.NET技术 , ASP.NET