使用 C#,XmlDocument.Load 抛出此异常:“十六进制值 0x3C,是无效的属性字符”。
让我感到困惑的是它在开发中有效。我应该在远程服务器与我的开发环境中寻找哪些差异?
使用 C#,XmlDocument.Load 抛出此异常:“十六进制值 0x3C,是无效的属性字符”。
让我感到困惑的是它在开发中有效。我应该在远程服务器与我的开发环境中寻找哪些差异?
我首先要看的是:它们运行的 .NET 版本是否完全相同?如果您的服务器运行的是 2.0 SP1,而您的“devenv”是 VS2008 SP1(即 .NET 3.5 SP1),那么它们并非100% 相同,即使仅使用 2.0 dll(即事物已在服务包中修复/更改)。
我要看的第二件事是:他们处理相同的输入数据吗?
我要看的第三件事是“文化”;您的开发机器设置为法语,您的服务器设置为俄语?(或者其他的东西)。在这种情况下不太可能,但在一般情况下,不同的文化和默认编码/代码集会有所不同。
在我看来,这就像一个数据问题。特别是文件中有一个未转义的 <
A < 可以转义为<
奇怪的是,它试图解析的内容是错误的来源——即您的本地开发/测试数据与实时数据不同,并且是导致问题的实时数据。
您需要通过应用程序的本地实例在实时系统上准确运行导致问题的数据 - 如果您仍然没有收到错误,那么下一个问题将是两者有何不同。