0

我正在使用需要 XML 配置文件的第 3 方 .NET 组件。我在 ASP.NET 应用程序中使用它。

使用以下 dtd 配置 XML 时出现错误:

<!DOCTYPE prod-config SYSTEM "cache-config.dtd">

错误如下:

出于安全原因,此 XML 文档中禁止使用 DTD。要启用 DTD 处理,请将 XmlReaderSettings 上的 ProhibitDtd 属性设置为 false 并将设置传递给 XmlReader.Create 方法。

prod-config.dtd 与 XML 配置文件位于同一目录中。

我无权访问组件代码来修改 XmlReaderSettings、ProhibitDtd 等。是否有其他方法可以修改或标记 XML 文件以允许访问 DTD?

(仅供参考,该组件是 Oracle Coherence .NET 客户端)

4

2 回答 2

0

您是否需要指定 DTD?如果没有实际使用它,那么最简单的方法就是完全省略 DTD 声明。

Oracle 网站上的页面表明该组件仅在 .NET 1.1 上受支持。我认为默认情况下拒绝 DTD 的行为在 .NET 1.1 和 .NET 2.0 之间发生了变化。如果您尝试使用 .NET 2.0 运行,我建议您尝试降级。并排安装 1.1可能会起作用,但您可能需要破解配置以强制它使用所需的运行时版本。

于 2010-04-29T16:18:48.387 回答
0

FWIW,我遇到了同样的错误,我将行更改为:

<!DOCTYPE prod-config "cache-config.dtd">

并修复了错误。不知道为什么会这样,因此我可能会遇到更多错误。

于 2013-08-16T19:59:25.223 回答