2016-04-22 138 views
5

这是我见过的最奇怪的错误,我不知道原因是什么。在VS2013中,我有一个使用datatables.net和中继器的aspx页面。该页面加载了罚款,并显示正确,然后在几秒钟后,我得到奇怪的System.StackOverflowException C#中的错误,Asp.Net网络应用程序

类型‘System.StackOverflowException’未处理的异常发生在System.Web.dll中

奇怪事情是,如果我在我的SQL中执行“TOP 76”,我不会得到那个错误,但是如果我执行“TOP 77”或更高,并且我得到那个错误。

我已经做了很多重新启动,删除并用不同的名称重新创建页面。试图删除datatables.net。我尝试更换单引号(认为可能会混淆我的标记)。但似乎没有任何工作。

这很奇怪,因为我有相同的类型/风格/代码在其他页面上的数据越来越少,它们都正常工作。

下一步是重新安装VS2013,因为我想不出别的东西要试。任何帮助将不胜感激,因为我fl。不乐。

这表明5000个条目之前的Visual Studio放弃

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

为什么你的html上有try-catch块? – JCM

+2

怎么样一个堆栈跟踪? –

+0

好吧,似乎是一个明显的问题,但你有超过76个记录在数据库? – pay

回答

2

的代码我有这个确切的问题,我终于追查下来到我的DataList控件布局模板ASPX代码。我在行html标记tr“中有一个拼写错误,在删除之前的样式信息时留下了一个引号。一旦我删除了引号,错误消失了。

+1

OMG。我简直不敢相信,有一个'td'错过了一个双引号一个内联样式,这真是难以置信,我实际上是双眼同时看着aspx和html代码,我在笑这样一个愚蠢的简单错误 – djack109