C# asp.net网站中的内存泄漏检测

C# asp.net网站中的内存泄漏检测,c#,asp.net,asp.net-mvc,memory,memory-leaks,C#,Asp.net,Asp.net Mvc,Memory,Memory Leaks,我的asp.net网站在20分钟内增长到2GB并重新启动。 当我运行这个网站时,将VisualStudio放在本地主机上,并将一个页面更新30倍,使网站增长约50-100MB。 我尝试过在没有数据库连接和布局的情况下运行非常简单的页面。这一页上只有一个字。经过数百次更新,这个网页的网站并没有增长。 然后我尝试返回到第一个(复杂的)页面,但我已经对cshtml文件中的所有标记进行了注释。这个页面上只有布局。网站正在成长 微不足道的。 然后,我对布局进行了注释,只留下带有许多注入数据的简单表标记。3

我的asp.net网站在20分钟内增长到2GB并重新启动。 当我运行这个网站时,将VisualStudio放在本地主机上,并将一个页面更新30倍,使网站增长约50-100MB。 我尝试过在没有数据库连接和布局的情况下运行非常简单的页面。这一页上只有一个字。经过数百次更新,这个网页的网站并没有增长。 然后我尝试返回到第一个(复杂的)页面,但我已经对cshtml文件中的所有标记进行了注释。这个页面上只有布局。网站正在成长 微不足道的。 然后,我对布局进行了注释,只留下带有许多注入数据的简单表标记。30次更新后,网站再次增长约50-100MB

我已经尝试使用dotMemory来检测原因。它的一些屏幕截图:

告诉我是否可以给你更多的信息

第2代的破碎化率为97%。(使用138 MB,免费220 MB)。我不知道该怎么办

我拍了两张快照。大多数新对象(和新字节)是Char[],它是StringBulder的一部分,PageExecutionContext的一部分,CacheEntry的一部分

我认为,这是一些视图缓存(cshtml文件)。但这只是一个猜测


有什么能帮我解决这个问题吗?

现在太晚了,但这是我的答案


我有MVC5.0,也有同样的问题。升级到5.2.3后,一切都消失了,内存使用恢复正常。

这已经太晚了,但下面是我的答案


我有MVC5.0,也有同样的问题。升级到5.2.3后,一切都消失了,内存使用恢复正常。

我找到了答案。我使用EF中的导航属性作为一个集合,包含大约100000个实体。这些实体每秒从DB加载一次,只是为了向这个集合添加新的实体


解决方案:不要在这么大的集合上使用导航属性。要添加实体,请使用DbContext中的DbSet。

我找到了答案。我使用EF中的导航属性作为一个集合,包含大约100000个实体。这些实体每秒从DB加载一次,只是为了向这个集合添加新的实体


解决方案:不要在这么大的集合上使用导航属性。要添加实体,请使用DbContext中的DbSet。

请提供一些技术细节。没有这些,我们就帮不了你。@PiyushKhatri,我准备给你更多的细节,但我不知道你需要什么细节。我需要一些细节,比如,你有哪种类型的页面。正如您在这里写的,您不使用数据库,所以只使用aspx页面?或者只是html静态页面?总共有多少页?等等@PiyushKhatri,我只测试了一页。这是一个cshtml文件,包含来自数据库的许多数据。我已尝试清除所有标记,但所有数据库逻辑都已保留。在这种情况下,应用程序的内存不会增长。调用了数据库上下文的Dispose()方法。因此,这意味着数据内存的bec将增加。你可以做的一件事是询问你的主机提供商。请提供一些技术细节。没有这些,我们就帮不了你。@PiyushKhatri,我准备给你更多的细节,但我不知道你需要什么细节。我需要一些细节,比如,你有哪种类型的页面。正如您在这里写的,您不使用数据库,所以只使用aspx页面?或者只是html静态页面?总共有多少页?等等@PiyushKhatri,我只测试了一页。这是一个cshtml文件,包含来自数据库的许多数据。我已尝试清除所有标记,但所有数据库逻辑都已保留。在这种情况下,应用程序的内存不会增长。调用了数据库上下文的Dispose()方法。因此,这意味着数据内存的bec将增加。有一件事你可以做,问问你的主机提供商。