2008-11-19 41 views
18

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 funciona muy bien, pero mi FAQ trae a colación:¿Qué podría estar causando un error de análisis XML: no se ha encontrado ningún elemento?

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

Los únicos cambios que he hecho estaban cambiando la cadena de conexión en mi página de SQL desde el 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í es 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> 

He encontrado esto en otro foro link:

Well, it appears it's a bit of both. The message is generated by Firefox, but caused by the framework. For some reason, .NET generates a response type of "application/xml" when it creates an empty page. Firefox parses the file as XML and finding no root element, spits out the error message.

IE no hace que la página, y punto. Aquí es de donde viene el XML.

Aquí es 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í es la fuente de la página en blanco IE regresa:

<!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> 
+0

que estoy enfrentando el mismo problema con los archivos de SVC, en IE No recibo ninguna respuesta y en Mozilla veo este error xml – Omu

Respuesta

1

ninguna declaración XML en el principio

<? xml version = "1.0"? >

1

Quizás algunos problemas de codificación, 'secuencia de unicode' corrupta al principio de su archivo o algo de esta naturaleza?

1

Tal vez no hay XML (XML es una cadena en blanco)?

1

El sitio está desarrollado en ASP.NET, no XML. ¿Esto tiene alguna relación con el problema?

+0

Además, aquí se lee algún tipo de XML. No lanzará error relacionado xml de lo contrario. – shahkalpesh

+0

No tengo idea de dónde podría venir el XML para ser honesto:/ – Anders

+0

¿Qué está haciendo constructDaqSideMenu? ¿Devuelve xml cuando le pasa un valor? Supongo que ahí es donde podría estar el problema. – shahkalpesh

6

No sé nada de ASP.NET, pero desde mi experiencia genérica con frameworks web, parece que su aplicación no produjo ningún resultado. Por lo general, eso significa que hubo una excepción antes de que ocurriera cualquier representación de salida, así que intente revisar los registros para descubrir qué fue lo que causó ...

+0

Cierto, en mi caso estaba usando 'return null' de mi acción de controlador MVC, así que cambié eso a' return Json (true) ', con la acción teniendo un tipo de retorno de' JsonResult' – Savage

16

Este es un hilo muy antiguo, pero encontré esto mientras busqué en Google el mismo problema y quería contribuir con una respuesta definitiva para cualquier persona que busque esto en el futuro.

Recibí este error cuando se produjo 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.Cogemos la última excepción con el siguiente código:

Server.GetLastError().GetBaseException() 
1

oye mismo error ha ocurrido para mí y solución para este error es el primer gestor de IIS abierta y luego en el Administrador de IIS bajo su nombre de servidor de doble clic sobre la extensión del servicio web y porque si las páginas de su servidor activo están "prohibidas", cámbielo a "permitir" y ahora se ejecutará su página asp.

1

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> 
1

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 he recibido este error porque anulé el método de representación de la página y olvidé de llamar a base.render (writer), enviando así una página vacía al navegador.

2

he tenido este problema en todas mis páginas cuando desplegué a IIS, la solución resultó que la cuenta del grupo de aplicación se ejecuta bajo no tiene suficientes privilegios para conectar la base de datos y ejecutar consultas

1

encontré este problema porque la URL estaba redirigiendo a una ubicación diferente. Corregir eso resolvió el problema.

Fue redirigiendo a http://localhost/forms/abc.aspx, sin embargo, que debería haber sido redirigida a http://localhost/projectname/forms/abc.aspx

0

me encontré con este problema al instalar mis servicios en una máquina virtual nueva. (es decir, no se han ejecutado otros servicios de WCF en esta máquina, aún).

Necesita instalar y agregar una asignación para WCF Services en IIS. La forma más sencilla de hacerlo es la siguiente:

  1. ejecutar un símbolo del sistema con privilegios de administrador elevados

  2. En el símbolo del sistema, vaya a C: \ Windows \ Microsoft.NET \ Framework \ v3. 0 \ Windows comunicación Fundación

  3. Ejecutar el comando ServiceModelReg.exe -i

  4. Reiniciar IIS ejecutando el comando iisreset

0

Estaba enfrentando el mismo problema. Mi solución puede no aplicarse a ASP.NET, estoy trabajando en nodo/tierra express.Mi punto final de la API no regresaba cualquier dato en la respuesta:

return res.status(200).end(); 

Cuando he incluido algo en la respuesta de datos que resuelva el problema:

return res.status(200).send('ok').end(); 
Cuestiones relacionadas