2010-04-29 204 views
0

我正在使用需要XML配置文件的第三方.NET组件。 我正在ASP.NET应用程序中使用它。此XML文档中禁止使用DTD - 如何更改权限?

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

的误差如下:

For security reasons DTD is prohibited in this XML document. To enable DTD processing set the ProhibitDtd property on XmlReaderSettings to false and pass the settings into XmlReader.Create method.

PROD-config.dtd是坐在同一目录

与下面的DTD配置XML时,我得到一个错误XML配置文件。

我没有访问组件代码修改XmlReaderSettings,ProhibitDtd等 有anotherway我可以修改或标记的XML文件以允许DTD进行访问?

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

回答

0

你需要在所有指定DTD?如果没有实际使用它,那么完全省略DTD声明是最简单的。

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

+0

这给出了错误:无法找到元素'cache-config'的模式信息。 – frankadelic 2010-04-29 17:01:21

+0

我认为这种行为在.NET 1.1和.NET 2之间发生了变化。难道这个组件仅在.NET 1.1中受支持吗? – 2010-04-29 17:03:43

+0

这是一个.NET 2.0组件。 – frankadelic 2010-04-29 18:05:08

0

FWIW,我有这个同样的错误,我改了行到:

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

和固定的错误。不知道为什么这会起作用,因此我可能会得到更多的错误。

+0

和你知道什么,它不会再工作! XML和微软=糟糕的组合。为什么我们甚至需要DTD?什么是DTD? – 2013-08-16 20:03:54