当前位置:  开发笔记 > 编程语言 > 正文

在OOXML中使用大二进制段的问题

如何解决《在OOXML中使用大二进制段的问题》经验,为你挑选了0个好方法。

系统描述

使用OOXML生成文档的绘图组件.

绘图组件由几个部分组成.除了OOXML文档的接口之外,所有部分都用C++编写为exe + dll.后一个组件是在C#/ .NET中创建的COM组件.主要原因是.NET框架包含System.IO.Packaging.这是一个非常方便的内置工具,用于处理OOXML文档.

我们使用模板OOXML文档创建文档,其中某些零碎的部分由其实际内容替换.

其中一个位是OLE服务器组件.基本上这是OOXML文件中的二进制段.为了编写这个二进制段,Packaging组件显然使用了独立存储.

问题

写一个> 8MB的段导致抛出异常"无法确定域的身份".

在C++端,此异常包含错误ISS_E_ISOSTORE(0x80131450).

我们已经对此进行了分析,据我们所知,这是一个安全功能,可防止半不受信任的第三方组件通过编写大量文件来完全破坏您的HD.

然后我们在.NET/COM组件中尝试了很多东西(创建自定义AppDomain,设置属性以获得最大允许性,创建我们自己的Streams并将它们传递给Packaging组件)但每次都会导致抛出相同的异常.

我们可以做些什么来完成这项工作?

可能是当.NET组件被实例化为COM组件时,其AppDomain总是不受信任的?

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有