ASP.NET 即使我不使用 MySQL 也找不到 MySQL 主机

ASP.NET Cannot Find MySQL Host Even Though I'm Not Using MySQL

我正在尝试制作一个简单的网页并 运行ning,它使用 TreeView 和 SiteMapDataSource。 TreeView 用于列出 Web 应用程序上的链接。我的站点导航数据源是一个 XML 文件 (Web.sitemap)。

当我在网络浏览器中 运行 此应用程序时,出现错误:"Unable to connect to any of the specified MySQL hosts."

它说我的错误在第 285 行:

Line 283:    <siteMap>
Line 284:      <providers>
Line 285:        <add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
Line 286:      </providers>
Line 287:    </siteMap>

源文件:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config 行:285

我没有为站点地图使用 MySQL 或任何 RDBMS,因此我不确定为什么会出现此错误。我确实在我的系统上安装了 MySQL 以及 Visual Studio 2015 的插件,这可能是问题所在吗?

谢谢。

<add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />

这是在定义一个 mySQL 数据源,其连接字符串名为 LocalMySqlServer。将抛出异常,因为您的应用无法连接到该连接字符串中定义的服务器。

我按照源文件位置:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config 滚动到第 285 行。我删除了 MySQL 数据在这行代码上和周围。 运行 又是我的应用程序,它工作正常:

<siteMap>
      <providers>
  <add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
      </providers>
    </siteMap>

首先转到控制面板删除 MYSQL 连接器 你可以去> C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

请删除以下内容并尝试此操作 ,

 <add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />

在使用 WordPress 应用程序安装另一个站点后,我在 BlogEngine 站点中遇到了同样的问题。 WordPress 的安装包括安装 MySql,以及 .NET Machine.config 文件中的一个条目。这是在 Windows Server 2012 R2 中。您可以从机器配置中删除该条目,但这可能会在其他地方引起问题。我选择在 BlogEngine Web.Config 文件中添加一个 Remove 键。

注意:在配置文件中添加了位置。

<system.web>
    <siteMap defaultProvider="PageSiteMap" enabled="true">
        <providers>   
            <remove name="MySqlSiteMapProvider" />
            ...
        </providers>
    </siteMap>
</system.web>

这解决了问题。

不知何故,"MySQL .Net Connector" 安装在我们的服务器上。我通过控制面板/程序和功能删除了它,问题就解决了。

<system.web>里面添加这个; 像下面这样;

<system.web>
   ...
    <siteMap>
    <providers>   
        <remove name="MySqlSiteMapProvider" />
    </providers>
  </siteMap>
<system.web>

这可能会帮助遇到此问题的其他人。我在我的机器上安装了 MySql 用于一个完全不相关的项目,但它似乎影响了我正在处理的另一个网站。添加删除提供程序为我自己解决了这个问题