当前位置:编程学习 > C#/ASP.NET >>

自定义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是否编译成功 --------------------编程问答-------------------- 已经检查过了命名空间没有问题,编译成功. --------------------编程问答--------------------
引用 2 楼  的回复:
已经检查过了命名空间没有问题,编译成功.

如果是独立的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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,