尽管正在使用 'XmlSiteMapProvider',但出现奇怪的 'MySqlSiteMapProvider' 错误
Strange 'MySqlSiteMapProvider' error although 'XmlSiteMapProvider' is being used
我最近将一些 Web 应用程序从共享托管环境迁移到我的专用服务器。服务器是 Windows Server 2012 R2 Standard,我的所有站点(同一个 C# Web 应用程序的所有细微变化)都工作正常,但是当您尝试浏览页面时,其中一个站点抛出此错误。
Server Error in 'ABC' Application.
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: Host 'SERVERNAME' is not allowed to connect to this MariaDB server
Source Error:
Line 283: <siteMap>
Line 284: <providers>
Line 285: <add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
Line 286: </providers>
Line 287: </siteMap>
Source File: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config Line: 285
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.2053.0
奇怪的是,我使用的是 System.Web.XMLSiteMapProvider
而不是 MySQL 提供程序(正如错误所暗示的那样),请参阅下面的 web.config
<siteMap>
<providers>
<add name="Admin" type="System.Web.XmlSiteMapProvider" siteMapFile="~/MenuSystem/Admin.sitemap" />
<add name="Branch" type="System.Web.XmlSiteMapProvider" siteMapFile="~/MenuSystem/Branch.sitemap" />
<add name="Supplier" type="System.Web.XmlSiteMapProvider" siteMapFile="~/MenuSystem/web.sitemap" />
</providers>
</siteMap>
同一应用程序的其他两个版本(测试版和克隆版)都工作正常,并且它们的 web.config
文件具有相同的站点地图提供程序。为什么会抛出这个错误,它与什么有关?设置 IIS 时我错过了什么吗?
请注意,错误来自 machine.config
,而不是 web.config
。所有 web.config
文件本质上都继承自基本机器版本。要覆盖提供者,您只需先清除列表即可。例如:
<siteMap defaultProvider="Admin">
<providers>
<!-- Add this next line: -->
<clear/>
<add name="Admin" type="System.Web.XmlSiteMapProvider" siteMapFile="~/MenuSystem/Admin.sitemap" />
<add name="Branch" type="System.Web.XmlSiteMapProvider" siteMapFile="~/MenuSystem/Branch.sitemap" />
<add name="Supplier" type="System.Web.XmlSiteMapProvider" siteMapFile="~/MenuSystem/web.sitemap" />
</providers>
</siteMap>
我最近将一些 Web 应用程序从共享托管环境迁移到我的专用服务器。服务器是 Windows Server 2012 R2 Standard,我的所有站点(同一个 C# Web 应用程序的所有细微变化)都工作正常,但是当您尝试浏览页面时,其中一个站点抛出此错误。
Server Error in 'ABC' Application.
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: Host 'SERVERNAME' is not allowed to connect to this MariaDB server
Source Error:
Line 283: <siteMap>
Line 284: <providers>
Line 285: <add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
Line 286: </providers>
Line 287: </siteMap>
Source File: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config Line: 285
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.2053.0
奇怪的是,我使用的是 System.Web.XMLSiteMapProvider
而不是 MySQL 提供程序(正如错误所暗示的那样),请参阅下面的 web.config
<siteMap>
<providers>
<add name="Admin" type="System.Web.XmlSiteMapProvider" siteMapFile="~/MenuSystem/Admin.sitemap" />
<add name="Branch" type="System.Web.XmlSiteMapProvider" siteMapFile="~/MenuSystem/Branch.sitemap" />
<add name="Supplier" type="System.Web.XmlSiteMapProvider" siteMapFile="~/MenuSystem/web.sitemap" />
</providers>
</siteMap>
同一应用程序的其他两个版本(测试版和克隆版)都工作正常,并且它们的 web.config
文件具有相同的站点地图提供程序。为什么会抛出这个错误,它与什么有关?设置 IIS 时我错过了什么吗?
请注意,错误来自 machine.config
,而不是 web.config
。所有 web.config
文件本质上都继承自基本机器版本。要覆盖提供者,您只需先清除列表即可。例如:
<siteMap defaultProvider="Admin">
<providers>
<!-- Add this next line: -->
<clear/>
<add name="Admin" type="System.Web.XmlSiteMapProvider" siteMapFile="~/MenuSystem/Admin.sitemap" />
<add name="Branch" type="System.Web.XmlSiteMapProvider" siteMapFile="~/MenuSystem/Branch.sitemap" />
<add name="Supplier" type="System.Web.XmlSiteMapProvider" siteMapFile="~/MenuSystem/web.sitemap" />
</providers>
</siteMap>