与DTD验证 - 连接强制关闭
-
21-09-2019 - |
题
我确认这是不是我的机器上的文件与DTD文件,它被存储在互联网上。
我目前收到以下异常
System.Xml.XmlException: An error has occurred while opening external DTD 'http://xml.cxml.org/schemas/cXML/1.2.020/cXML.dtd': Unable to connect to the remote server --->
System.Net.WebException: Unable to connect to the remote server --->
System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host 216.109.104.11:80

at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)

at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
 at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
 --- End of inner exception stack trace ---

at System.Net.HttpWebRequest.GetResponse()

at System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri, ICredentials credentials)

at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials)

at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)

at System.Xml.XmlTextReaderImpl.OpenStream(Uri uri)

at System.Xml.XmlTextReaderImpl.DtdParserProxy_PushExternalSubset(String systemId, String publicId)
 --- End of inner exception stack trace ---

at System.Xml.XmlTextReaderImpl.Throw(Exception e)

at System.Xml.XmlTextReaderImpl.DtdParserProxy_PushExternalSubset(String systemId, String publicId)

at System.Xml.XmlTextReaderImpl.DtdParserProxy.System.Xml.IDtdParserAdapter.PushExternalSubset(String systemId, String publicId)

at System.Xml.DtdParser.ParseExternalSubset()

at System.Xml.DtdParser.ParseInDocumentDtd(Boolean saveInternalSubset)

at System.Xml.DtdParser.Parse(Boolean saveInternalSubset)

at System.Xml.XmlTextReaderImpl.ParseDoctypeDecl()

at System.Xml.XmlTextReaderImpl.ParseDocumentContent()

at System.Xml.XmlTextReaderImpl.Read()

at System.Xml.XmlValidatingReaderImpl.Read()

at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)

at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)

at System.Xml.XmlDocument.Load(XmlReader reader)

at cXML.ResponseFactory..ctor(HttpRequest request) :: System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host 216.109.104.11:80

at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)

at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
 at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
 --- End of inner exception stack trace ---

at System.Net.HttpWebRequest.GetResponse()

at System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri, ICredentials credentials)

at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials)
 at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)

at System.Xml.XmlTextReaderImpl.OpenStream(Uri uri)

at System.Xml.XmlTextReaderImpl.DtdParserProxy_PushExternalSubset(String systemId, String publicId) :: System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host 216.109.104.11:80

at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)

at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)

at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
我知道文件是可访问的,因为我可以浏览到它。但是,为什么不能.NET访问它? 由于事先。
解决方案
我得到以下情况例外,当我浏览[ HTTP:// xml.cxml.org/schemas/cXML/1.2.020/cXML.dtd ] DTD文件。
XML解析错误:语法错误 地点: http://xml.cxml.org/schemas/cXML/ 1.2.020 / cXML.dtd 行号15,第1栏:
只要下载DTD文件,并尝试在本地访问DTD。你可以缩小你的问题。
不隶属于 StackOverflow