返回视图后出现.NET MVC StackOverflow异常

返回视图后出现.NET MVC StackOverflow异常,.net,asp.net-mvc,stack-overflow,.net,Asp.net Mvc,Stack Overflow,在将视图发送到客户端之后,我在.NETMVC项目中得到一个“System.StackOverflowException”。视图渲染正确,因此客户端看不到任何错误。但是,服务器随后会因StackOverflow异常而崩溃。我只在IISExpress/VisualStudio中测试过这个,没有在IIS中测试过 我在远程服务器上有html文件。我加载的html文件如下所示: using (WebClient client = new WebClient() {Credentials = new Ne

在将视图发送到客户端之后,我在.NETMVC项目中得到一个“System.StackOverflowException”。视图渲染正确,因此客户端看不到任何错误。但是,服务器随后会因StackOverflow异常而崩溃。我只在IISExpress/VisualStudio中测试过这个,没有在IIS中测试过

我在远程服务器上有html文件。我加载的html文件如下所示:

using (WebClient client = new WebClient() 
{Credentials = new NetworkCredential(Username, Password)})
{
    string html = client.DownloadString(url);
    viewModel.Pages.Add(html);
}
foreach(var page in Model.Pages)
{
    @Html.Raw(page)
}
其中“页面”可以包含多个html片段。然而,我使用的测试页面是一个完整的html页面,带有“doctype”、“head”、“body”等节点

在我看来,我是这样呈现页面的:

using (WebClient client = new WebClient() 
{Credentials = new NetworkCredential(Username, Password)})
{
    string html = client.DownloadString(url);
    viewModel.Pages.Add(html);
}
foreach(var page in Model.Pages)
{
    @Html.Raw(page)
}
正如我所说,页面呈现正确,但服务器随后崩溃。我没有看到任何递归调用。我尝试使用Debug Diag工具进行故障排除,但无法填充任何崩溃转储

此外,如果我在没有@Html.Raw()的情况下呈现“页面”,则不会发生崩溃(但是,页面随后无法正确呈现。例如,LT/GT括号被替换为“>;/”<;”,以及其他字符)

我怀疑这可能与“html”字符串的长度或页面内容有关。我有另一个站点地图页面,它更简单,加载正确,并且不会导致服务器错误

异常也发生在不同的位置:System.Web.dll、mscorlib.dll和System.Runtime.Serialization.dll

如何解决此StackOverflow异常

使用@Html.Raw()呈现的字符串大小是否有限制

外部堆栈跟踪:

System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlJsonWriter.HasOpenAttribute.get()未知 System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlJsonWriter.WriteState.get()未知 System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlJsonWriter.WriteStarAttribute(字符串前缀、字符串localName、字符串ns)未知 System.Xml.dll!System.Xml.XmlWriter.WriteAttributeString(字符串localName,字符串值)未知 System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.JsonWriterDelegator.WriteInt(int值)未知 System.Runtime.Serialization.dll!System.Runtime.Serialization.IntDataContract.WriteXmlValue(System.Runtime.Serialization.XmlWriterDelegator编写器,对象obj,System.Runtime.Serialization.XmlObjectSerializerWriteContext上下文)未知 System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.JsonDataContract.WriteJsonValueCore(System.Runtime.Serialization.XmlWriterDelegator jsonWriter,对象obj,System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson上下文,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.SerializationAndVerifyType(System.Runtime.Serialization.DataContract DataContract,System.Runtime.Serialization.XmlWriterDelegator xmlWriter,object obj,布尔verifyKnownType,System.RuntimeTypeHandle declaredTypeHandle,System.Type declaredType)未知 System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.SerializationWithXSITYPE(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.InternalSerialization(System.Runtime.Serialization.XmlWriterDelegator xmlWriter,对象obj,bool isDeclaredType,bool writeXsiType,int declaredTypeID,System.RuntimeTypeHandle declaredTypeHandle)未知 System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.InternalSerialization(System.Runtime.Serialization.XmlWriterDelegator xmlWriter,对象obj,bool isDeclaredType,bool writeXsiType,int declaredTypeID,System.RuntimeTypeHandle declaredTypeHandle)未知 [轻量级功能]
System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.JsonCollectionDataContract.WriteJsonValueCore(System.Runtime.Serialization.XmlWriterDelegator jsonWriter,对象obj,System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson上下文,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.SerializationAndVerifyType(System.Runtime.Serialization.DataContract DataContract,System.Runtime.Serialization.XmlWriterDelegator xmlWriter,object obj,布尔verifyKnownType,System.RuntimeTypeHandle declaredTypeHandle,System.Type declaredType)未知 System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.SerializationWithXSITYPE(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.Interna