C# 中的奇怪 System.StackOverflowException 错误,Asp.Net 网络应用程序

Strange System.StackOverflowException error in C#, Asp.Net web app

这是我见过的最奇怪的错误,我不知道是什么原因。在 VS2013 中,我有一个使用 datatables.net 和中继器的 aspx 页面。页面加载正常并正确显示,几秒钟后我得到

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

奇怪的是,如果我在我的 SQL 中执行 "TOP 76",我不会收到该错误,但是如果我执行 "TOP 77" 或更大,我将收到该错误。

我已经多次重启,删除并重新创建了不同名称的页面。尝试删除 datatables.net。我尝试替换单引号(认为这可能会弄乱我的标记)。但似乎没有任何效果。

这很奇怪,因为我在其他页面上有相同的 type/style/code,数据越来越多,但它们都工作正常。

下一步是重新安装 VS2013,因为我想不出还有什么可以尝试的。任何帮助将不胜感激,因为我很困惑。

在 visual studio 放弃之前显示了 5,000 个条目

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.

这是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>

这是背后的代码

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("'", "-"));
        }
    }
}

我确实遇到了这个问题,我最终将其追溯到为我的 DataList 设置模板的 aspx 代码。我在 html 标签 tr" 行中有一个拼写错误,其中引用是删除以前的样式信息留下的。一旦我删除了引用,错误就消失了。

对我来说,问题是这样的。

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

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

我使用的是变量名称 tempUIPart1Form 和 tempUIPart2Button,而不是 UIPart1Form 和 UIPart2Button(控件的名称)。

出于某种原因,没有编译错误,但它确实因错误 "An unhandled exception of type 'System.WhosebugException' occurred in System.Web.dll"

而崩溃