Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 尝试下载XML文件时出错_Asp.net_Xml_Vb.net_Download - Fatal编程技术网

Asp.net 尝试下载XML文件时出错

Asp.net 尝试下载XML文件时出错,asp.net,xml,vb.net,download,Asp.net,Xml,Vb.net,Download,我正在尝试下载一个XML文件,该文件已存在于指定的路径中,我不熟悉VB,可能此代码不正确,我需要帮助才能下载现有的XML文件,以下是代码: Protected Sub DownloadFile(ByVal sPath As String) Dim TargetFile As New System.IO.FileInfo(sPath) Response.Clear() Response.AddHeader("Content-Disposition",

我正在尝试下载一个XML文件,该文件已存在于指定的路径中,我不熟悉VB,可能此代码不正确,我需要帮助才能下载现有的XML文件,以下是代码

Protected Sub DownloadFile(ByVal sPath As String)
        Dim TargetFile As New System.IO.FileInfo(sPath)
        Response.Clear()
        Response.AddHeader("Content-Disposition", "attachment; filename=" +
            TargetFile.Name)
        Response.AddHeader("Content-Length", TargetFile.Length.ToString())
        Response.ContentType = "text/xml"
        Response.WriteFile(TargetFile.FullName)
        Response.End()
End Sub
控制台中返回的错误

未捕获错误:Sys.WebForms.PageRequestManagerParserErrorException:无法分析从服务器接收的消息。此错误的常见原因是当通过调用response.Write()修改响应、启用响应筛选器、HttpModules或服务器跟踪时

问题背景化

Protected Sub DownloadFile(ByVal sPath As String)
        Dim TargetFile As New System.IO.FileInfo(sPath)
        Response.Clear()
        Response.AddHeader("Content-Disposition", "attachment; filename=" +
            TargetFile.Name)
        Response.AddHeader("Content-Length", TargetFile.Length.ToString())
        Response.ContentType = "text/xml"
        Response.WriteFile(TargetFile.FullName)
        Response.End()
End Sub
我序列化了一个对象并创建了一个XML文件,然后我只想下载这个文件,我的困难是下载这个文件

Dim oObj1 As New System.Xml.Serialization.XmlSerializer(GetType(eSocial.Eventos.evtTabHorTur.eSocial))
Dim sFileName = Date.Now.ToString("yyyyMMddHHmmss") & ".xml"
Dim sPath = Constantes.Ambiente.CaminhoSite & "temp\" & sFileName
Dim oFile As New System.IO.StreamWriter(sPath)
oObj1.Serialize(oFile, eSocialCamposXml)
oFile.Close()

您的意思是下载有困难,但代码中除了显示编写文件然后序列化文件外,没有其他内容。您将使用“StreamReader”或类似的方式来读取文件。下面是一个简单的例子。假设我在文件位置上有一个xml结构,其模式如下:

<root>
    <test>Data</test>
</root>

这是ASP.NET VB吗?@Jaxi是的,
VB.NET
标签上写着这个否,我的意思是这是
WinForms
还是这是
ASP.NET
@Jaxi ASP.NET,我会在问题中指定,谢谢。你如何触发下载?这可能是UpdatePanel内部的某个控件发出的吗?您的回答帮助我读取了一个xml文件,可能不清楚,我想下载这个xml文件,它可能是这样的:
download(xmlFile)
,谢谢您的回复。文件在哪里?您的“下载”例程获取一个位置,然后尝试将其作为响应的一部分。当您说“下载”时,我想您可能想将您的问题改为:“如何将文件添加到HTTP响应中?”。只是猜测,因为您没有说明响应是什么系统或定义的类型。无论如何,我仍然会使用streamreader替换“Dim TargetFile As New System.IO.FileInfo(sPath)”,因为这是获取文件引用,而不是获取文件。我的下载尝试是基于对这个问题的回答,我不熟悉VB,请原谅问题中的任何歧义,我将尝试使用stremreader。最大的问题是我有XML文件路径,但我不确定如何让客户端下载该文件。我猜目的是什么?我的目的是将该文件作为“XDocument”的对象下载到内存中。然后我可以用它做任何我想做的事。你似乎在论坛上遵循某种方法来做我没有看到的事情。将此添加到一个网络回复中,我并没有从这个问题中得到什么。除非你提供更多的上下文。加上那个页面很古老,2006年是.NET3.0之前。如果你在写这篇文章时正在做一些新的事情,那么可能有更有效的方法来做你想做的事情。