asp.net - tras - error de lectura xml: no se encuentra el elemento raíz ajax
¿Qué podría estar causando un error de análisis XML: no se ha encontrado ningún elemento? (13)
Hace poco migré un sitio ASP de mi máquina de desarrollo a un servidor en vivo. Todas las páginas, excepto mi página de preguntas frecuentes, funcionan bien, pero aparecen mis preguntas frecuentes:
XML Parsing Error: no element found
Location: http://geniusupdate.com/GSHelp/faq.aspx
Line Number 1, Column 1:
Los únicos cambios que hice fueron cambiar la cadena de conexión en mi página de SQL de local a la cadena especificada por mi servicio de alojamiento. ¿Algún consejo sobre lo que puedo hacer para encontrar la raíz de este problema?
aquí está la fuente de mi página de preguntas frecuentes:
<%@ 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>
Encontré esto en otro enlace del foro:
Bueno, parece que es un poco de ambos. El mensaje es generado por Firefox, pero es causado por el framework. Por alguna razón, .NET genera un tipo de respuesta de "aplicación / xml" cuando crea una página vacía. Firefox analiza el archivo como XML y al no encontrar ningún elemento raíz, escupe el mensaje de error.
IE no representa la página, punto. Aquí es de donde viene el XML.
Aquí está la función 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
Y aquí está la fuente de la página en blanco IE devuelve:
<!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>
¿Tal vez algunos problemas de codificación, una "secuencia unicode" corrupta al comienzo de su archivo o algo de esta naturaleza?
El sitio está desarrollado en ASP.NET, no en XML. ¿Esto tiene alguna relación con el problema?
No sé nada sobre ASP.NET, pero a partir de mi experiencia genérica con frameworks web, parece que tu aplicación no produjo ningún resultado. Por lo general, eso significa que hubo una excepción antes de que se realizara cualquier representación de salida, así que intente revisar los registros para descubrir qué lo causó ...
Tal vez no hay XML (XML es una cadena en blanco)?
sin declaración xml al principio
<? xml version = "1.0"?>
Este es un hilo muy antiguo, pero lo encontré mientras busqué en Google el mismo problema y quise aportar una respuesta definitiva para cualquier persona que busque esto en el futuro.
Obtuve este error cuando se lanzó una excepción mientras se analizaban las directivas de página. Actualicé los archivos aspx del control de código fuente y el desarrollador que los revisó tenía una versión diferente de una biblioteca de controles de terceros. Las directivas de la página Registrar conjunto hace referencia a una versión que no tenía, por lo que se lanzó la excepción en este punto. Supongo que este error aparece en el cliente cuando se lanza una excepción tan temprano en el ciclo de vida de la solicitud de la página que no se envía nada al cliente.
Estamos registrando todas las excepciones en el nivel de aplicación en Global.Application_Error
, así que pude obtener esta información de los registros. Tomamos la última excepción con el siguiente código:
Server.GetLastError().GetBaseException()
hey el mismo error ocurrió para mí y la solución para este error es abrir primero iis manager y luego en el administrador de iis bajo el nombre del servidor hacer doble clic en la extensión del servicio web y en que si las páginas del servidor activo están "prohibidas" cambiarlo a "permitir" y ahora tu página asp se ejecutará.
Si llama a un script .vb o .cs desde una página .aspx y obtiene este error, agregue el siguiente código a la página .aspx. FireFox necesita una apariencia de marcado válido aparentemente. Esto funcionó para mí.
<html>
<body></body>
</html>
Puede haber dos razones para esto. Uno puede tener una o más etiquetas HTML sin cerrar o puede que no haya configurado el tipo de contenido para nuestra respuesta. Lee http://chiragrdarji.wordpress.com/2010/02/17/xml-parsing-error-no-element-found/ para obtener más detalles.
Tuve este problema en todas mis páginas cuando implementé IIS. Resultó que la cuenta en la que se ejecutaba el grupo de aplicaciones no tenía suficientes privilegios para conectarse y ejecutar consultas en la base de datos.
Tuve el mismo problema. Fue causado porque manejé excepciones en global.asax, y llamé Server.ClearError (), sin llamar a Response.Redirect o similar. Supongo que el código falló y se eliminó el error, por lo que asp.net no pudo mostrar un mensaje de error, ni pudo mostrar la página solicitada.
También recibí este error porque anulé el método de representación de la página y olvidé llamar a base.render (writer), enviando así una página vacía al navegador.
Encontré este problema porque la URL estaba redireccionando a una ubicación diferente. Corregir eso resolvió el problema.
Estaba redireccionando a http://localhost/forms/abc.aspx
, sin embargo, debería haber sido redirigido a http://localhost/projectname/forms/abc.aspx
Me encontré con este problema al instalar mis servicios en una máquina virtual nueva. (es decir, todavía no se han ejecutado otros servicios de WCF en esta máquina).
Necesita instalar y agregar una asignación para WCF Services en IIS. La forma más fácil de hacerlo es la siguiente:
Ejecutar un símbolo del sistema con privilegios de administrador elevados
En el símbolo del sistema, vaya a C: / Windows / Microsoft.NET / Framework / v3.0 / Windows Communication Foundation
Ejecute el comando
ServiceModelReg.exe -i
Reinicie IIS ejecutando el comando
iisreset