我使用的是需要XML配置文件的第三方.NET组件。 我正在ASP.NET应用程序中使用它。
使用以下dtd配置XML时出现错误:
<!DOCTYPE prod-config SYSTEM "cache-config.dtd">
错误如下:
出于安全原因,禁止使用DTD 在这个XML文档中。启用DTD 处理设置ProhibitDtd XmlReaderSettings上的属性为false 并将设置传递给 XmlReader.Create方法。
prod-config.dtd与XML配置文件位于同一目录中。
我无法访问组件代码来修改XmlReaderSettings,ProhibitDtd等。 是否还有我可以修改或标记XML文件以允许访问DTD?
(仅供参考,该组件是Oracle Coherence .NET客户端)
答案 0 :(得分:0)
您是否需要指定DTD?如果没有实际使用它,那么完全省略DTD声明将是最简单的。
Oracle网站上的Ths page表明该组件仅在.NET 1.1上受支持。我认为默认情况下拒绝DTD的行为在.NET 1.1和.NET 2.0之间发生了变化。如果您尝试使用.NET 2.0,我建议您尝试降级。安装1.1并排可能工作,但您可能需要破解配置以强制它使用所需的运行时版本。
答案 1 :(得分:0)
FWIW,我有同样的错误,我将行改为:
<!DOCTYPE prod-config "cache-config.dtd">
并修正了错误。不知道为什么会起作用,因此我可能会得到更多的错误。