【问题标题】:IIS Express - increase memory limitIIS Express - 增加内存限制
【发布时间】:2023-03-09 16:15:01
【问题描述】:

我在 .NET MVC5 中有一个 VS 项目,它加载一个使用大量内存的外部 dll 文件。平均而言,它使用 500-1000MB 内存。

现在,当我尝试使用默认 IIS Express 服务器调试我的项目时,我几乎总是遇到 OutOfMemory 异常。

我知道普通 IIS 有一个 /3gb 标志,但是 IIS Express 呢?是否有任何设置以便我可以启用此功能,或者除了在开发 PC 上安装完整的 IIS 之外,还有其他解决方案吗?

PS:开发人员 PC 具有 Windows 8.1 64x 和 Visual Studio 2013。

【问题讨论】:

  • 您使用的是 32 位还是 64 位操作系统?
  • 64 位操作系统。而且我没有 IIS,我只有 IIS Express。
  • @Gapipro:您是否尝试过为工作进程增加虚拟内存?
  • @mrd 这个可以在哪里设置?
  • 您的计算机上安装了多少内存?

标签: c# asp.net visual-studio iis iis-express


【解决方案1】:

转到 Visual Studio - 工具 - 选项菜单

选择:- 项目和解决方案,然后选择 Web 项目

勾选复选框:“为网站和项目使用 64 位版本的 IIS Express”

无需修改注册表。

【讨论】:

  • 比起公认的答案,我更喜欢这个。这在 VS2015 上仍然可以正常工作,并保存任何不需要的注册表更改。
  • 很好的答案.. 在 VS 2015 中工作:)
  • 同意!!理想情况下,这应该是选定的答案。在 VS2013 Update 5 中也可以正常工作。
  • 对我来说,这导致“无法加载文件或程序集。试图加载格式不正确的程序。”
  • @JoshNoe 您的依赖项之一可能是 32 位版本。因此您需要获得该依赖项的 64 位版本,如果不可能,您将需要继续使用 32 位版本的 IIS Express
【解决方案2】:

Cassini 和 IISExpress 默认以 32 位运行...您可以通过添加/设置以下注册表项将 Visual Studio 2012 配置为使用 IIS Express 64 位:

reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects /v Use64BitIISExpress /t REG_DWORD /d 1

IIS Express 8 及更高版本支持这两种模式。最好在更改注册表后使用进程资源管理器之类的应用程序来检查 IISExpress 进程并确保其从 64 位位置运行。在 64 位系统上安装 IIS 8.0 Express 时,32 位和 64 位版本的 IIS 8.0 Express 将分别安装在“%ProgramFiles(x86)%\IIS Express”和“%ProgramFiles%\ IIS Express”文件夹。

或者,您可以在本地安装 IIS 并将其配置为运行您的应用程序。您可以将 Visual Studio 配置为指向 IIS 的本地实例。

【讨论】:

  • 注册表值在 Visual Studio 2010 中似乎不起作用。在 VS 2010 中是否有任何等效项?
  • 对于 Visual Studio 2013,只需将注册表项路径中的 11.0 更改为 12.0
  • 此注册表更改适用于 Visual Studio 2015 RC,即 14.0
  • 重启 VS2015 以注意 14.0 中的注册表更改
猜你喜欢
  • 1970-01-01
  • 2022-01-03
  • 2019-02-19
  • 2019-03-13
  • 2014-04-24
  • 2023-03-22
  • 2012-03-08
  • 2018-03-03
相关资源
最近更新 更多