当前位置:  开发笔记 > 编程语言 > 正文

可能导致XML解析错误的原因:找不到任何元素?

如何解决《可能导致XML解析错误的原因:找不到任何元素?》经验,为你挑选了3个好方法。

我最近将一个ASP站点从我的dev机器迁移到了一个实时服务器.除了我的FAQ页面以外的所有页面都运行正常,但我的常见问题解答提出:

XML Parsing Error: no element found
Location: http://geniusupdate.com/GSHelp/faq.aspx
Line Number 1, Column 1:

我所做的唯一更改是将我的SQL页面上的连接字符串从本地更改为我的托管服务指定的字符串.有关如何找到问题的根源的任何提示?

这是我的FAQ页面的来源:

<%@ Page Language="VB" MasterPageFile="~/theMaster.master" AutoEventWireup="false" CodeFile="faq.aspx.vb" Inherits="faq" Title="Untitled Page" %>
<%@ Import Namespace="sqlstuff" %>
<%@ Import Namespace="functions" %>


    FAQ

    <%=faqPageTitle(Request.QueryString("cid"))%>


     

Click on a question to expand it to see the answer!

<% If cID >= 0 Then Dim theFaq As New List(Of faqContent), iterate As Integer = 0 theFaq = sqlStuff.getFaqs(cID) For Each oFaq As faqContent In theFaq Response.Output.WriteLine("

Q: {2}

", _ addQuotes("gsSwitch{0}-title", iterate), _ addQuotes("handCursor"), _ oFaq.Content.Question) Response.Output.WriteLine("
A: {2}
", _ addQuotes("gsSwitch{0}", iterate), _ addQuotes("gsSwitch"), _ oFaq.Content.Answer) iterate += 1 Next Else Response.Output.Write("Here you can find a lot of information about eTHOMAS and how to expedite your office tasks.{0}", ControlChars.NewLine) End If %>

<% If cID >= 0 Then Response.Write(constructFaqSideMenu(CInt(Request.QueryString("cid")))) Else Response.Write(constructFaqSideMenu()) End If %>

我在另一个论坛链接上找到了这个:

好吧,它似乎有点兼而有之.该消息由Firefox生成,但由框架引起.出于某种原因,.NET在创建空页面时会生成响应类型"application/xml".Firefox将文件解析为XML并找不到根元素,然后吐出错误消息.

IE不会呈现页面,期间.这就是XML的来源.

这是constructFaqSideMenu()函数:

Public Shared Function constructFaqSideMenu(ByVal oSelID As Integer) As String
    Dim oCatList As New List(Of faqCategory)
    Dim oRet As New StringBuilder
    Dim iterate As Integer = 1, extraTag As String = ""

    oCatList = sqlStuff.getFaqCats

    oRet.AppendFormattedLine("
    ", addQuotes("submenu")) oRet.AppendFormattedLine("
  • FAQ Categories
  • ", addQuotes("title")) For Each category As faqCategory In oCatList If iterate = oSelID Then extraTag = String.Format(" id={0}", addQuotes("active")) Else extraTag = "" End If oRet.AppendFormattedLine(" {2}", extraTag, addQuotes("faq.aspx?cid={0}", iterate), StrConv(category.Title, VbStrConv.ProperCase)) iterate += 1 Next oRet.AppendLine("
") Return oRet.ToString End Function

这里是IE返回的空白页面的来源:





Rich.. 16

这是一个非常古老的主题,但我在谷歌搜索同样的问题时发现了这一点,并希望为将来搜索此内容的其他人提供明确的答案.

在解析页面指令时抛出异常时出现此错误.我从源代码管理中更新了aspx文件,检查它们的开发人员使用了不同版本的第三方控件库.Register Assembly页面指令引用了我没有的版本,因此此时抛出了异常.我假设当在页面请求生命周期中如此早地抛出异常时,在客户端中出现此错误时,根本没有任何内容被发送到客户端.

我们正在应用程序级别记录所有异常Global.Application_Error,因此我能够从日志中获取此信息.我们使用以下代码获取最后一个异常:

Server.GetLastError().GetBaseException()


ykaganovich.. 6

我对ASP.NET一无所知,但根据我对Web框架的一般经验,听起来你的应用程序根本没有产生任何输出.通常这意味着在任何输出呈现发生之前都存在异常,因此请尝试查看日志以找出导致它的原因...



1> Rich..:

这是一个非常古老的主题,但我在谷歌搜索同样的问题时发现了这一点,并希望为将来搜索此内容的其他人提供明确的答案.

在解析页面指令时抛出异常时出现此错误.我从源代码管理中更新了aspx文件,检查它们的开发人员使用了不同版本的第三方控件库.Register Assembly页面指令引用了我没有的版本,因此此时抛出了异常.我假设当在页面请求生命周期中如此早地抛出异常时,在客户端中出现此错误时,根本没有任何内容被发送到客户端.

我们正在应用程序级别记录所有异常Global.Application_Error,因此我能够从日志中获取此信息.我们使用以下代码获取最后一个异常:

Server.GetLastError().GetBaseException()



2> ykaganovich..:

我对ASP.NET一无所知,但根据我对Web框架的一般经验,听起来你的应用程序根本没有产生任何输出.通常这意味着在任何输出呈现发生之前都存在异常,因此请尝试查看日志以找出导致它的原因...



3> kyleb..:

我遇到了这个问题,至少对我来说,这是因为在C#WebAPI 2中,如果返回空的Ok()结果,它将返回XML作为内容类型。即使您在WebAPI配置中重写它也不会返回XML。因此,我的解决方案是在我拥有的基本控制器类中实现此功能,并在需要返回空OK()JSON响应的任何地方使用它。可以使它们更高级以满足他们的需求,但这就是我所做的。我猜您也许也可以使用AttributeFilter,但是我做了这个解决方案,因为它与Action中的代码量相同。

protected IHttpActionResult OKJSONResult()
{
    HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "", new MediaTypeHeaderValue("application/json"));
    return ResponseMessage(response);
}

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有