我在一个web.config文件中有下面的连接字符串来连接到MS数据库。
<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Server=developer\SqlExpress;Integrated Security=True;Database=mydb" providerName="System.Data.SqlClient"/>我在同一台机器上有和MySQL服务器。当我尝试运行应用程序时,我会在machine.config文件的第285行中得到以下错误。
错误:
解析器错误消息:使用'mysql_native_password‘方法对主机'’用户'‘的身份验证失败,消息:拒绝用户’@‘localhost’的访问(使用密码: NO)
<add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />该错误与mySQL有关,但我正在尝试连接mySQL。
我怎样才能解决这个问题?
发布于 2015-10-05 08:37:55
“删除”您的MySqlSiteMapProvider中的web.config提供程序,如下所示:
<siteMap>
<providers>
<remove name="MySqlSiteMapProvider" /> <!-- add this line -->
</providers>
</siteMap>发布于 2019-01-17 12:24:41
当您使用Mysql连接器网络安装MySql时,会出现此问题。当machine.config安装您的计算机时,它会根据您的machine.config版本配置您的“.net”。
有几种方法可以解决这个问题。
1)您可以在提供程序中添加<clear />标记。"Machine.config“覆盖您的自定义提供程序,因此为了禁用它,我们在项目web.config中添加了<clear />标记。
<siteMap defaultProvider="SitefinitySiteMap">
<providers>
<!-- This line added. -->
<clear />
<add name="SitefinitySiteMap" type="Telerik.Sitefinity.Web.SitefinitySiteMap, Telerik.Sitefinity" />
</providers>
</siteMap>2)第二种方法有点棘手,如果将Mysql与.net结合使用,可能会在项目中造成错误。
首先,你需要找到"machine.config“的位置。您可以在这里获得更多信息:https://stackoverflow.com/a/2325492/3801977
就我而言,地点是:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config
打开"machine.config",找到以下行并删除它:
<siteMap>
<providers>
<add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=8.0.13.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
</providers>
</siteMap>发布于 2015-10-05 09:15:58
问题不在于连接到Server。问题是您的配置文件找到了一个名为MySqlSiteMapProvider的条目,该条目试图连接到我的Server,但失败了。我不知道这个提供程序是用来做什么的,但是您必须删除它,以及它在您的应用程序代码中的用法,或者更新它,这样它就可以使用Server而不是缺少的或配置错误的mySql。
https://stackoverflow.com/questions/32943876
复制相似问题