加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – .NET程序集格式是否有大小限制?

发布时间:2020-12-16 03:46:38 所属栏目:asp.Net 来源:网络整理
导读:我们遇到了一个我以前从未体验过的有趣问题.我们在Visual Studio 2008 SP1中有一个大规模生产的ASP.NET 3.5 SP1 Web App项目,它使用网站部署项目进行编译和部署.去年一切都运行良好,直到昨天办理登机手续后,应用程序开始严重失败, BadImageFormatException .
我们遇到了一个我以前从未体验过的有趣问题.我们在Visual Studio 2008 SP1中有一个大规模生产的ASP.NET 3.5 SP1 Web App项目,它使用网站部署项目进行编译和部署.去年一切都运行良好,直到昨天办理登机手续后,应用程序开始严重失败,BadImageFormatException.

有问题的登记不会改变任何特别特别的错误,错误来自应用程序的区域甚至没有改变.使用Reflector我们检查了有问题的方法,发现代码中有垃圾字符串(which .NET Reflector humorously interpreted as Chinese characters).我们一直在几台机器上重现这一点,因此它似乎与硬件无关.

进一步检查表明,在部署期间用作aspnet_merge.exe输入的程序集中不存在这些垃圾字符串.

aspnet_merge.exe / Web Deployment Project Output
Assemblies Properties:

  • Merge all outputs to a single assembly
  • Merge each individual folder output to its own assembly
  • Merge all pages and control outputs to a single assembly
  • Create a separate assembly for each page and control output

在Web部署项目属性中,如果我们将合并选项设置为第一个选项(“将所有输出合并到单个程序集”),我们会遇到问题,但所有其他选项都可以正常运行!

我的问题:有谁知道为什么会这样? aspnet_merge.exe的功能是否有大小限制(生成的合并DLL大约为19.3 MB)?合并WAP的输出还有其他已知问题吗?

如果任何汇编格式/ aspnet_merge.exe专家知道任何此类限制,我会很高兴.对我来说就像一个25MB的程序集,虽然很大,但并不令人发指.

解决方法

您可以尝试在其上运行 PEVerify,看看你得到了什么.

对我而言,这听起来像编码问题……但我不确定为什么会发生这种情况.技术上限制了可以装入程序集中元数据表的元数据量,但我怀疑这是否是问题所在.

如果在Ildasm中打开exe,您可以看到元数据表的大小,您可以尝试查看统计信息(查看 – >统计信息)或元数据表的计数,这是一个两步过程:1.查看 – &gt ; Metainfo-> Raw:Count,Sizes 2.按Ctrl M.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读