背景信息:
我在Azure(共享主机)上托管了一个公共网站。昨天,我没有任何改变,该网站开始抛出以下错误消息:
处理您的请求时发生异常。另外, 执行自定义错误页面时发生另一个异常...
在一个痛苦的故障排除部分之后,我意识到问题出在我的web.config的以下部分。
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" ..... />
</DbProviderFactories>
</system.data>
Azure必须将我的实例重新定位到另一台已经在machine.config中定义了此MySQL数据提供程序的主机,并且重复的配置条目最终取消了整个网站。
我本可以使用 clear 或 Remove 标记来绕过错误,但事实证明,我不再需要MySQL功能,所以我只是删除了条目完全解决问题。
这是我的问题: 使用第三方服务,我无法控制machine.config设置。昨天证明我不能假设他们将永远是他们现在的样子。我已经看到通常的做法是在连接字符串部分中使用删除标记,以防止在层次结构中的其他位置已经定义了所需连接字符串的情况。所以还有另一个例子,通过添加删除标记来明确付出代价。
我正在寻找的是web.config中一个有点全面的标签列表,应该使用 remove 或 clear 标签来防范这些标签来自配置源的无法预料的重复标签。我们无法控制。