tags:

views:

8783

answers:

12

I recently migrated an ASP site from my dev machine to a live server. All the pages except my FAQ page works just fine, but my FAQ brings up:

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

The only changes I have made were changing the connection string on my SQL page from local to the string specified by my hosting service. Any tips on what I can do to find the root of this issue?

here is the source to my FAQ page:

<%@ 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>

I found this on another forum 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 does not render the page, period. This is where the XML is coming from.

Here is the constructFaqSideMenu() function:

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

And here is the source of the blank page IE returns:

<!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>
+1  A: 

no xml declaration in the beginning

<?xml version="1.0"?>

Chris Ballance
+1  A: 

Maybe some encoding problems, corrupted 'unicode sequence' in the beginning of your file or something of this nature?

axk
+1  A: 

Maybe there is no XML (XML is a blank string)?

shahkalpesh
+1  A: 

The site is developed in ASP.NET, not XML. Does this have any bearing on the problem?

Anders
Also, there is some kind of XML being read here. It wont throw xml related error otherwise.
shahkalpesh
I have no idea where the XML could be coming from to be honest :/
Anders
What is constructDaqSideMenu doing? Does it return xml when you pass a value to it? I guess, that is where the problem could be.
shahkalpesh
Ill post that subroutine, look above...
Anders
I suggest looking or debugging that piece of code to see whether it returns xml (and if it does, is it well-formed)?
shahkalpesh
Look at the HTML generated by IE? Is it blank? What is missing from it?Try removing the masterpage header from top?
shahkalpesh
Blank page in IE. I commented out all the content (so just the empty asp:contentPlaceHolders remain) and I am still getting the error.
Anders
what is gsContent? Is it some kind of treeview? Find the source of where it gets its info from?
shahkalpesh
gsContent is just a variable name. It links to a DHTML function that allows you to hide/show the FAQ answer by clicking the question.
Anders
Like I said before, try removing masterpage header and see if that works. Sadly, you will have to break things into part to find the problem.
shahkalpesh
+3  A: 

I don't know anything about ASP.NET, but from my generic experience with web frameworks, it sounds like your application failed to produce any output at all. Usually that means that there was an exception before any output rendering took place, so try looking through the logs to find out what caused it...

ykaganovich
+5  A: 

This is a very old thread, but I found this while googling for the same problem and wanted to contribute a definitive answer for anyone else who searches for this in the future.

I got this error when an exception was thrown while the page directives were being parsed. I updated aspx files from source control, and the developer who checked them in had a different version of a 3rd party library of controls. The Register Assembly page directives referenced a version I didn't have, so the exception was thrown at this point. I'm assuming that this error shows up in the client when an exception is thrown so early in the page request life cycle that nothing at all is sent to the client.

We are logging all exceptions at the app level in Global.Application_Error, so I was able to get this info from the logs. We grab the last exception with the following code:

Server.GetLastError().GetBaseException()
Rich
+1  A: 

hey same error occured for me and solution for this error is first open iis manager and then in the iis manager under your server name double click on web service extension and in that if your active server pages is "prohibited" change it to "allow" and now your asp page will run.

+1  A: 

If you are calling a .vb or .cs script from a .aspx page and get this error, add the following code to the .aspx page. FireFox needs to some semblance of valid mark up apparently. This worked for me.

<html>
<body></body>
</html>
mmcglynn
+1  A: 

There can be two reason for this. One you may have one or more unclosed HTML tag or you may have not set content type for our response. Read http://chiragrdarji.wordpress.com/2010/02/17/xml-parsing-error-no-element-found/ for more detail.

Chirag Darji
A: 

Hi

i am facing the same issue.i have create new copy of the same page.But same issue is coming Please Suggest.

XML Parsing Error: no element found Location: http:// Line Number 1, Column 1: ^

Thanks Shikha

Shikha
A: 

I had the same issue. It was caused because I handled exceptions in global.asax, and called Server.ClearError(), without calling a Response.Redirect or similar. I guess, that the code failed and the error was removed, so asp.net could not display an errormessage, nor could could it display the reuqested page.

I have also received this error, because I overrided the render method of the page, and forgot to call base.render(writer), thus sending an empty page to the browser.

A: 

what about when this error shows up in wordpress (PHP) ?

leave me a suggestion here