C# 如何增加IIS Express允许的RAM使用率?

C# 如何增加IIS Express允许的RAM使用率?,c#,asp.net-mvc,iis,out-of-memory,iis-express,C#,Asp.net Mvc,Iis,Out Of Memory,Iis Express,首先,我看到了这个问题: 但它不是重复的,因为所有答案都指向64位版本的IIS Express。我需要支持32位!32位可支持每个进程2 GB RAM 我正在调试一个奇怪的问题。因此,我创建了一个运行良好的控制台应用程序: //Simplifiy my application logic var trash = new List<int>(); long mbUsed = 0; while (mbUsed < 600) { for (var i = 0; i <

首先,我看到了这个问题:

但它不是重复的,因为所有答案都指向64位版本的IIS Express。我需要支持32位!32位可支持每个进程2 GB RAM


我正在调试一个奇怪的问题。因此,我创建了一个运行良好的控制台应用程序:

//Simplifiy my application logic
var trash = new List<int>();
long mbUsed = 0;
while (mbUsed < 600)
{
    for (var i = 0; i < 100000; i++)
    {
        trash.Add(i);
    }
    GC.Collect();
    mbUsed = Process.GetCurrentProcess().WorkingSet64 / 1024 / 1024;
    Console.WriteLine(mbUsed + " MB used");
}

//Creating a image
var bitmap = new Bitmap(2000, 4000);
//简化我的应用程序逻辑
var trash=新列表();
长mbUsed=0;
而(mbUsed<600)
{
对于(变量i=0;i<100000;i++)
{
垃圾。添加(i);
}
GC.Collect();
mbUsed=Process.GetCurrentProcess().WorkingSet64/1024/1024;
Console.WriteLine(mbUsed+“使用MB”);
}
//创建图像
var位图=新位图(20004000);
基本上,它将ram填充到600 MB,然后尝试创建一个大映像

现在,如果我在MVC操作中粘贴相同的代码,令人惊讶的是,我会得到一个OutOfMemoryException:

如果我读对了,我使用的内存少于500 MB


那么我怎样才能使用更多的内存呢?对于普通IIS,我可以在上更改它。

您确定已将控制台应用程序的“平台目标”生成属性正确设置为x86吗?如果您尝试跳过位图的内容,然后在一个无休止的循环中增加列表,直到在这两种情况下都出现此错误,怎么样?另外,请确保了解添加元素时List类如何调整其内部数组的大小。添加一个元素不会使已用字节数增加一个!最后,我希望您在IIS(Express或not)应用程序中提前一点达到内存限制,因为与控制台应用程序相比,您会增加web/app服务器开销。32位IIS/IIS Express无法支持2GB。当内存使用量上升到1GB以上时,内存不足的Ezception就开始出现,这在技术上是有原因的。如果您的web应用确实需要更多内存,则必须切换到64位。还有一件事需要了解:@LexLi ah谢谢您,这是我网站上缺少的部分。现在一切都变得更有意义了。您确定已将控制台应用程序的“平台目标”构建属性正确设置为x86吗?如果您尝试跳过位图的内容,然后在一个无休止的循环中增加列表,直到在这两种情况下都出现此错误,怎么样?另外,请确保了解添加元素时List类如何调整其内部数组的大小。添加一个元素不会使已用字节数增加一个!最后,我希望您在IIS(Express或not)应用程序中提前一点达到内存限制,因为与控制台应用程序相比,您会增加web/app服务器开销。32位IIS/IIS Express无法支持2GB。当内存使用量上升到1GB以上时,内存不足的Ezception就开始出现,这在技术上是有原因的。如果您的web应用确实需要更多内存,则必须切换到64位。还有一件事需要了解:@LexLi ah谢谢您,这是我网站上缺少的部分。现在一切都变得更有意义了。