Visual Basic编译器(vbc.exe)用尽了所有系统内存(RAM和虚拟)

问题描述 投票:0回答:1

我在Visual Studio 2019中有一个使用VB的asp.net Web应用程序。该项目可编译并运行良好。我们发布文件并将其放在www根文件夹中,效果很好。

我们有一个aspx文件开始变得很大。现在超过5,000行,共423kb。这在击中已编译的aspx时会起作用,但在访问已发布的aspx时会阻塞roselyn编译器。BC31498:字符串常量的长度超过了当前的存储限制。尝试将字符串拆分为多个常量。我们从bin中删除了rosyln编译器,并在web.config中删除了引用。这导致.NET使用C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ vbc.exe对其进行编译,我们将放慢速度,然后它将运行,然后服务器将重新启动。它必须构建并缓存我假设的文件。

无论如何,该页面现在更大,并且将不会加载已发布的页面。我们收到以下错误。

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ vbc.exe失败,出现以下错误。

'/'应用程序中的服务器错误。

编译错误

描述:在编译满足该请求所需的资源期间发生错误。请查看以下特定的错误详细信息,并适当地修改您的源代码。

编译器错误消息:编译器失败,错误代码为-2147023441。

显示详细的编译器输出:

c:\ windows \ system32 \ inetsrv>“ C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ vbc.exe” / t:library / utf8output ......

您不能拥有较大的aspx文件吗? div标签太多?我清除了.net framework文件夹中的temp文件夹。没有.NET版本不匹配。已发布的代码在具有更大RAM(48GB)的非生产计算机上也可以正常工作。

请帮助,谢谢。

asp.net vb.net compiler-errors roslyn
1个回答
0
投票

您正在罗斯林遇到this问题。本机编译器(一个来自C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319的编译器)可以处理稍大的字符串,但是问题是相同的。您使用的字符串文字太大,编译器无法编译。我对您的建议是使用资源文件(.resx)代替字符串文字。这应该允许您的页面为任意大小。

© www.soinside.com 2019 - 2024. All rights reserved.