请大家帮忙看看,哪里写错了啊!!!!!!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>

解决方案 »

  1.   

    检查名称空间是否正确
    MyMembershipProvider是否编译成功
      

  2.   

    如果是独立的dll
    .net版本是否正确,
      

  3.   

    我用的是VS2010,默认应该是.net4.0版本呀, 请问楼上应该如何检查.net版本呢,谢谢.
      

  4.   

    这个原因很简单。你没有指明是在那个程序集。所在系统不知道从那个程序集加载,因此指定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">
      

  5.   

    你看看是不是MembershipProvider所在的程序集的名称是不是MembershipAndRole.BusinessLogicLayer,如果不是的话改过来就可以了。