Asp.net 什么可能导致XML解析错误:未找到元素?
我最近将一个ASP站点从我的开发机器迁移到了一个实时服务器。除了我的FAQ页面之外,所有页面都可以正常工作,但我的FAQ会显示:Asp.net 什么可能导致XML解析错误:未找到元素?,asp.net,Asp.net,我最近将一个ASP站点从我的开发机器迁移到了一个实时服务器。除了我的FAQ页面之外,所有页面都可以正常工作,但我的FAQ会显示: XML Parsing Error: no element found Location: http://geniusupdate.com/GSHelp/faq.aspx Line Number 1, Column 1: 我所做的唯一更改是将SQL页面上的连接字符串从本地更改为托管服务指定的字符串。关于我能做些什么来找到这个问题的根源,有什么建议吗 以下是我的常见问
XML Parsing Error: no element found
Location: http://geniusupdate.com/GSHelp/faq.aspx
Line Number 1, Column 1:
我所做的唯一更改是将SQL页面上的连接字符串从本地更改为托管服务指定的字符串。关于我能做些什么来找到这个问题的根源,有什么建议吗
以下是我的常见问题页面的来源:
<%@ Page Language="VB" MasterPageFile="~/theMaster.master" AutoEventWireup="false" CodeFile="faq.aspx.vb" Inherits="faq" Title="Untitled Page" %>
<%@ Import Namespace="sqlstuff" %>
<%@ Import Namespace="functions" %>
<asp:Content ContentPlaceHolderID="page_title" ID="theTitle" runat="server">
FAQ</asp:Content>
<asp:Content ContentPlaceHolderID="column1_title" ID="col1Title" runat="server">
<%=faqPageTitle(Request.QueryString("cid"))%></asp:Content>
<asp:Content ContentPlaceHolderID="column1" ID="columnContent" runat="server">
<p>Click on a question to expand it to see the answer!</p>
<p><% 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("<h4 id={0} class={1}>Q: {2}</h4>", _
addQuotes("gsSwitch{0}-title", iterate), _
addQuotes("handCursor"), _
oFaq.Content.Question)
Response.Output.WriteLine("<div id={0} class={1}><string>A: </strong>{2}</div>", _
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
%></p>
<script type="text/javascript">
var gsContent = new switchcontent("gsSwitch", "div")
var eID = '<%= expandID %>'
gsContent.collapsePrevious(true) // TRUE: only 1; FALSE: any number
gsContent.setPersist(false)
if(eID >= 0){
gsContent.defaultExpanded(eID) // opens the searched FAQ
document.getElementById('gsSwitch' + eID + '-title').scrollIntoView(true) // scrolls to selected FAQ
}
gsContent.init()
</script>
</asp:Content>
<asp:Content ContentPlaceHolderID="subcolumn_right_title" ID="rSideColTitle" runat="server"></asp:Content>
<asp:Content ContentPlaceHolderID="subcolumn_right" ID="rSideColContent" runat="server"></asp:Content>
<asp:Content ContentPlaceHolderID="subcolumn_left_title" ID="lSideColTitle" runat="server"></asp:Content>
<asp:Content ContentPlaceHolderID="subcolumn_left" ID="lSideColContent" runat="server"></asp:Content>
<asp:Content ContentPlaceHolderID="sidecolumn_title" ID="sideColtitle" runat="server">
</asp:Content>
<asp:Content ContentPlaceHolderID="sidecolumn" ID="sideCol" runat="server">
<% If cID >= 0 Then
Response.Write(constructFaqSideMenu(CInt(Request.QueryString("cid"))))
Else
Response.Write(constructFaqSideMenu())
End If
%>
</asp:Content>
:
看来两者都有点像。该消息由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("<ul id={0}>", addQuotes("submenu"))
oRet.AppendFormattedLine(" <li id={0}>FAQ Categories</li>", 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(" <li{0}><a href={1}>{2}</a></li>", extraTag, addQuotes("faq.aspx?cid={0}", iterate), StrConv(category.Title, VbStrConv.ProperCase))
iterate += 1
Next
oRet.AppendLine("</ul>")
Return oRet.ToString
End Function
将公共共享函数构造函数FaqSideMenu(ByVal oSelID作为整数)作为字符串
将列表设置为新列表(FAQ类别)
Dim oRet作为新的StringBuilder
Dim iterate As Integer=1,extraTag As String=“”
octalist=sqlStuff.getFaqCats
oRet.AppendFormattedLine(“”,addQuotes(“子菜单”))
oRet.AppendFormattedLine(“FAQ类别”,addQuotes(“标题”))
将每个类别作为列表中的常见问题解答类别
如果iterate=oSelID,则
extraTag=String.Format(“id={0}”,addQuotes(“active”))
其他的
extraTag=“”
如果结束
oRet.AppendFormattedLine(“”,extraTag,addQuotes(“faq.aspx?cid={0}”,iterate),StrConv(category.Title,VbStrConv.ProperCase))
迭代+=1
下一个
oRet.附录行(“”)
返回oRet.ToString
端函数
这里是空白页的来源:返回:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD>
<BODY></BODY></HTML>
开头没有xml声明
可能是一些编码问题、文件开头的“unicode序列”已损坏或类似性质的东西?可能没有XML(XML是一个空白字符串)?该网站是在ASP.NET中开发的,不是XML。这与问题有关吗?我对ASP.NET一无所知,但根据我对web框架的一般经验,您的应用程序似乎根本无法生成任何输出。通常这意味着在任何输出渲染发生之前都会出现异常,因此请尝试查看日志以找出导致异常的原因…这是一个非常古老的线程,但我在搜索相同问题时发现了此问题,并希望为以后搜索此问题的任何其他人提供一个明确的答案
当解析页面指令时引发异常时,我遇到了这个错误。我从源代码管理更新了aspx文件,签入这些文件的开发人员拥有不同版本的第三方控件库。寄存器程序集页指令引用了我没有的版本,因此此时引发了异常。我假设在页面请求生命周期的早期抛出异常时,该错误会出现在客户机中,而不会向客户机发送任何内容
我们正在Global.Application\u Error
中记录应用程序级别的所有异常,因此我能够从日志中获取此信息。我们使用以下代码获取最后一个异常:
Server.GetLastError().GetBaseException()
嘿,我也发生了同样的错误,解决此错误的方法是首先打开iis管理器,然后在服务器名下的iis管理器中双击web服务扩展,如果活动服务器页面被“禁止”,则将其更改为“允许”现在asp页面将运行。如果从.aspx页面调用.vb或.cs脚本并出现此错误,请将以下代码添加到.aspx页面。FireFox显然需要一些有效的标记。这对我有用
<html>
<body></body>
</html>
这可能有两个原因。您可能有一个或多个未关闭的HTML标记,或者您可能没有为我们的响应设置内容类型。阅读更多细节。我也有同样的问题。这是因为我在global.asax中处理了异常,并调用了Server.ClearError(),而没有调用Response.Redirect或类似命令。我猜,代码失败,错误被删除,因此asp.net无法显示错误消息,也无法显示请求的页面
我还收到了此错误,因为我重写了页面的呈现方法,忘记调用base.render(writer),从而向浏览器发送了一个空页面。当我部署到IIS时,我的所有页面都出现了此问题,解决方案的结果是,运行应用程序池的帐户没有足够的权限连接和执行数据库查询我发现了此问题,因为URL正在重定向到其他位置。纠正这一点解决了问题
它正在重定向到http://localhost/forms/abc.aspx
,但是它应该被重定向到http://localhost/projectname/forms/abc.aspx
在新的虚拟机上安装服务时,我遇到了这个问题。(即:尚未在此计算机上运行其他WCF服务。)
您需要安装WCF服务的映射并将其添加到IIS中。最简单的方法如下:
使用提升的管理员权限运行命令提示符
>P>在命令提示符下,导航到C:\Windows \微软.NET\Frase\v3.0\Windows通信基金会
运行命令ServiceModelReg.exe-i
通过运行命令iisreset
我也面临同样的问题。我的解决方案可能不适用于ASP.NET,我在node/express land工作。我的API终结点未在响应中返回任何数据:
return res.status(200).end();
当我在数据响应中包含一些内容时,它解决了问题:
return res.status(200).send('ok').end();
我发现这至少对我来说是因为在C#WebAPI 2中,如果返回一个空的Ok()
protected IHttpActionResult OKJSONResult()
{
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "", new MediaTypeHeaderValue("application/json"));
return ResponseMessage(response);
}