zoukankan      html  css  js  c++  java
  • membership 启用 roleManager 抛出异常:未能加载文件或程序集MySql.Web

    在vs2013中新建一个ASP.NET MVC 4 WEB 应用程序,使用“基本”模板。web.config中默认使用forms认证方式,并添加了membership的配置。

       <roleManager defaultProvider="DefaultRoleProvider" enabled="true">
          <providers>
            <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
          </providers>
        </roleManager>

    默认是没有enabled属性的,它继承C:WindowsMicrosoft.NETFrameworkv4.0.30319Configmachine.config里的配置是false。如果改成enable=“true”,那么站定启动时也会查找machine.config配置文件中的<roleManager>配置节。

    <roleManager>
                <providers>
                    <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
                    <add name="AspNetWindowsTokenRoleProvider" applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
                    <add name="MySQLRoleProvider" type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/"/>
                </providers>
            </roleManager>

    如果你恰巧也安装过MySQL Connector Net,恭喜你中奖了,运行站点会收到如下异常:

    分析器错误消息: 未能加载文件或程序集“MySql.Web, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”或它的某一个依赖项。系统找不到指定的文件。
    
    源错误:
    
    
    行 263:                <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    行 264:                <add name="AspNetWindowsTokenRoleProvider" applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    行 265:                <add name="MySQLRoleProvider" type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/"/>
    行 266:            </providers>
    行 267:        </roleManager>
    
    
    源文件: C:WindowsMicrosoft.NETFrameworkv4.0.30319Configmachine.config    行: 265 

    根据mysql官方的说明是 “Currently, MySQL Connector/Net provides Membership, Role, Profile and Session State Providers.”,也就是说在安装mysql Connector 的时候默认安装了这个provider,并且修改了machine.config文件。

    要想程序不报错有两种处理方式:

    1.在控制面板->程序中找到MySQL Connector Net,修改移除Web Providers

    2.把 C:Program Files (x86)MySQLConnector NET 6.7.4Assembliesv4.0 下的几个类库MySql.Data.dll、MySql.Web.dll、MySql.Data.Entity.dll 拷贝到站点的bin目录下

    参考:

    1. How to Connect to MySQL Using C#

    2. roleManager

  • 相关阅读:
    linux学习25 运维加薪技能-Linux特殊权限及facl扩展
    linux学习24 Linux运维必备技能-文件查找命令企业级应用
    linux学习23 Linux运维必备技能-vim编辑器高效用法进阶
    linux学习22 Linux运维必备技能-vim编辑器深入讲解
    linux学习21 运维核心节能-egrep进阶及文本处理工具应用
    linux学习20 运维核心技能-grep命令与基本正则表达式
    【Hadoop离线基础总结】关键路径转化率分析(漏斗模型)
    【Hadoop离线基础总结】Hive级联求和
    【Hadoop离线基础总结】hive的窗口函数
    【Hadoop离线基础总结】网站流量日志数据分析系统
  • 原文地址:https://www.cnblogs.com/zeroes/p/membership_throw_mysqlweb_exception.html
Copyright © 2011-2022 走看看