2010-04-29 230 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