7

This is the weirdest error I have seen and I don't know what the cause is. In VS2013 I have an aspx page using datatables.net and a repeater. The page loads up fine and displays correctly then after a few seconds I get

"An unhandled exception of type 'System.StackOverflowException' occurred in System.Web.dll"

The strange thing is if I do "TOP 76" in my SQL I don't get that error however if I do "TOP 77" or greater and I get that error.

I have done numerous restarts, deleted and recreated the page with different names. Tried removing the datatables.net. I tried replacing single quotes (thinking that might be messing with my mark up). But nothing seems to work.

It's weird because I have the same type/style/code on other pages with more and less data and they all work fine.

Next step is reinstall VS2013 as I can't think of anything else to try. Any help would be much appreciated as I am flummoxed.

This shows 5,000 entries before visual studio gives up

System.Runtime.Serialization.dll!System.Runtime.Serialization.TypeHandleRefEqualityComparer.GetHashCode(System.Runtime.Serialization.TypeHandleRef obj)
    mscorlib.dll!System.Collections.Generic.Dictionary<System.Runtime.Serialization.TypeHandleRef,System.Runtime.Serialization.IntRef>.FindEntry(System.Runtime.Serialization.TypeHandleRef key)
    mscorlib.dll!System.Collections.Generic.Dictionary<System.Runtime.Serialization.TypeHandleRef,System.Runtime.Serialization.IntRef>.TryGetValue(System.Runtime.Serialization.TypeHandleRef key, out System.Runtime.Serialization.IntRef value)
    System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.JsonDataContract.JsonDataContractCriticalHelper.GetId(System.RuntimeTypeHandle typeHandle)
    System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.JsonDataContract.JsonDataContractCriticalHelper.GetJsonDataContract(System.Runtime.Serialization.DataContract traditionalDataContract)
    System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.WriteDataContractValue(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle declaredTypeHandle)
    System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeAndVerifyType(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, bool verifyKnownType, System.RuntimeTypeHandle declaredTypeHandle, System.Type declaredType)
    System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.SerializeWithXsiType(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle objectTypeHandle, System.Type objectType, int declaredTypeID, System.RuntimeTypeHandle declaredTypeHandle, System.Type declaredType)
    System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, bool isDeclaredType, bool writeXsiType, int declaredTypeID, System.RuntimeTypeHandle declaredTypeHandle)
    System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.InternalSerialize(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, bool isDeclaredType, bool writeXsiType, int declaredTypeID, System.RuntimeTypeHandle declaredTypeHandle)
    [Lightweight Function]
    /* lots of lines omitted */
    System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.JsonCollectionDataContract.WriteJsonValueCore(System.Runtime.Serialization.XmlWriterDelegator jsonWriter, object obj, System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson context, System.RuntimeTypeHandle declaredTypeHandle)
    System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.WriteDataContractValue(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle declaredTypeHandle)
    System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle declaredTypeHandle)
    System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, bool isDeclaredType, bool writeXsiType, int declaredTypeID, System.RuntimeTypeHandle declaredTypeHandle)
    System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.InternalSerialize(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, bool isDeclaredType, bool writeXsiType, int declaredTypeID, System.RuntimeTypeHandle declaredTypeHandle)
    [Lightweight Function]
    System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.JsonCollectionDataContract.WriteJsonValueCore(System.Runtime.Serialization.XmlWriterDelegator jsonWriter, object obj, System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson context, System.RuntimeTypeHandle declaredTypeHandle)
    System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.WriteDataContractValue(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle declaredTypeHandle)
    System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle declaredTypeHandle)
    The maximum number of stack frames supported by Visual Studio has been exceeded.

Here is the aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/OxintMaster.master" AutoEventWireup="true" CodeBehind="inactivereport.aspx.cs" Inherits="oxint.com._40.admin.contrib.inactivereport" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <div class="grid">
        <div class="row cells12">
            <div class="cell colspan12">
                <h3>Companies assigned to Inactive Contributors Report (<asp:Literal runat="server" ID="litCount" ></asp:Literal>)</h3>
            </div>
        </div>
        <table id="mysearchresultstable" class="dataTable striped" data-page-length='25'>
            <thead>
                <tr>
                    <th>Contributor</th>
                    <th style="text-align:center;">Count</th>
                    <th style="text-align:center;">Action</th>
                </tr>
            </thead>
            <tbody>
                <%try
                  {%>
                <asp:Repeater runat="server" ID="rptData1">
                    <ItemTemplate>
                        <tr>
                            <td style="white-space:nowrap;">
                                <a href='/admin/contrib/cndisplay.aspx?id=<%#Eval("Items[0].Value")%>'>
                                    <asp:Literal runat="server" ID="litName"></asp:Literal>
                                </a>
                            </td>
                            <td style="white-space:nowrap;text-align:center;"><%#Eval("Items[3].Value")%></td><!--count-->
                            <td style="white-space:nowrap;text-align:center;">
                                <a href='/admin/contrib/inactiveview.aspx?id=<%#Eval("Items[0].Value")%>'><span class="mif-info"></span>
                            </td>
                        </tr>
                    </ItemTemplate>
                </asp:Repeater>
                <%}
                  catch (Exception ex) { Response.Write(ex.Message); } %>
            </tbody> 
        </table>             
    </div>

<script>
    $(document).ready(function () {
        /*$.fn.dataTable.moment('dd MMM yyyy HH:mm');*/
        $('#mysearchresultstable').dataTable(
        {
            /*"order": [[1, "asc"]],*/
            /*responsive: true,*/
            "lengthMenu": [25, 50, 100],
            "pagingType": "full",
            "oLanguage": { "sSearch": "Filter:" },
            "aoColumns": [null, null, { "bSortable": false }]
        }
    );
});
</script>

</asp:Content>

Here is the code behind

using ApplicationClasses;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace oxint.com._40.admin.contrib
{
    public partial class inactivereport : System.Web.UI.Page
    {
        private int iCount { get; set; }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                rptData1.ItemDataBound += rptData1_ItemDataBound;

                string sData = "SELECT contributor.referenceno,contributor.firstname,contributor.lastname,COUNT(contributor.referenceno) As Count " +
                              "FROM ((Contribprofile inner join contributor on Contribprofile.referenceno=contributor.referenceno) " +
                              "inner join Profilecompany on Contribprofile.companyid=Profilecompany.companyid) " +
                              "where Contribprofile.iscurrent =1 and not contributor.status in ('Full','Trial') " +
                              "group by contributor.Referenceno,contributor.firstname,contributor.lastname ";

                rptData1.DataSource = new DataAccessFunctions.DataAccess().GetData(sData, null);
                rptData1.DataBind();
            }
        }

        void rptData1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            GenericData oData = (GenericData)e.Item.DataItem;

            iCount += ApplicationSystemFunctions.SystemFunctions.ParseInt(oData.Items[3].Value);

            litCount.Text = iCount.ToString();

            Literal oLiteral = (Literal)e.Item.FindControl("litName");

            oLiteral.Text = string.Format("{0} {1}", oData.Items[1].Value, oData.Items[2].Value.Replace("'", "-"));
        }
    }
}
13
  • Why you have a try-catch block on your html? Commented Apr 22, 2016 at 13:20
  • 2
    How about a stack trace? Commented Apr 22, 2016 at 13:21
  • Well, seems like an obvious question, but do you have more than 76 records in the database? Commented Apr 22, 2016 at 13:24
  • Try/Catch was desperation, it didn't help. Stack trace "Source Not Available" When the error window pops up you get OK and Continue, pressing either ends execution. The DB query returns 246 records. They are in the attached file. (Link above) Commented Apr 22, 2016 at 13:27
  • Does it happen in IIS Express and release IIS? Commented Apr 22, 2016 at 13:35

2 Answers 2

7

I had this exact problem and I finally traced it down to the aspx code which laid out the template for my DataList. I had a typo in the row html tag tr" where a quote was left over from deleting previous style information. Once I removed the quote, the error went away.

Sign up to request clarification or add additional context in comments.

4 Comments

OMG. I can't believe that was it. there was a td missing a double-quote from an inline style. That's unbelievable, I'd actually gone crossed-eyed looked at both the aspx and html code. I am laughing such a stupid simple error
I had the same issue and I don't think I would have solved it if not for this answer. In my case, I was generating some HTML server side, and there was a missing close tag for a paragraph. It was causing the stack overflow while debugging, which occurred after the page had rendered - the page needed to be refreshed 5 times to generate the error.
Asp.Net MVC. Forgot to close a html <tag> inside a foreach. Two days. Two freaking days trying to find where the error was. I scrubbed every line, then every character of the SQL query, and the C# functions. I re-wrote half of them to not use SQL or just use things differently. Updated VS, used a older VS version, god knows what else I'm forgetting...
same here, I had a invalid HTML tag <foo></foo> which caused this error
0

For me, the issue was something like this.

            UserControl tempUIPart1Form = (UserControl)Page.LoadControl("UIPart1Form.ascx");
            UserControl tempUIPart2Button = (UserControl)Page.LoadControl("UIPart2Button.ascx");

            UIPart1Form.Controls.Add(tempUIPart1Form);
            UIPart2Button.Controls.Add(tempUIPart2Button);

Instead of UIPart1Form & UIPart2Button (the name of the controls), I was using the variable names tempUIPart1Form & tempUIPart2Button .

For some reason, there were no compilation errors but it sure it did crash with the error "An unhandled exception of type 'System.StackOverflowException' occurred in System.Web.dll"

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.