如何通过.NET API向HCL Lotus Notes的.nsf数据库添加文档?
HCL Notes 与.NET 对接上传附件问题解答
问题1:API部署服务器是否需要安装Notes客户端
分两种场景判断:
- 如果你使用的是传统的
Interop.DominoCOM互操作程序集、或者HCL官方提供的Domino .NET Toolkit对接,必须在部署服务器上安装对应版本的HCL Notes客户端或Domino运行时,且需要完成客户端初始化配置:给运行API服务的账号配置好可用的Notes ID、Domino服务器连接文档、以及目标NSF库的访问权限,否则会出现连接或权限报错。 - 如果你使用Domino Access Services(DAS,Domino自带的REST API服务)对接,仅需要目标Domino服务器端开启DAS服务并配置好账号权限,部署API的服务器不需要本地安装Notes客户端。
问题2:同类需求的实现参考
这类将Web端上传文件写入NSF库的需求是Domino对接项目的常见场景,常规实现逻辑如下:
- 先将Web端上传的文件暂存到API服务器的临时目录,校验文件完整性和大小合规性
- 若使用COM互操作方案:先获取目标Notes文档实例,拿到表单对应的富文本字段(如果不存在可调用
NotesDocument.CreateRichTextItem()创建),再调用NotesRichTextItem.EmbedObject()方法,传入EMBED_ATTACHMENT类型参数和临时文件路径即可完成附件写入,写入完成后删除本地临时文件即可 - 若使用DAS REST方案:构造multipart/form-data格式的请求,调用目标文档对应的附件上传端点即可完成写入
踩坑提示:如果使用COM互操作方案,运行API的服务账号不能使用系统内置的Local System账号,必须使用配置了Notes客户端环境的普通Windows账号,否则会出现无法读取Notes ID、连接失败的问题;大文件上传需要提前调整Domino服务器的单附件大小上限、以及Web API的请求体大小限制,避免上传截断。
内容的提问来源于stack exchange,提问作者Nabeel A.
相关产品推荐
相关产品推荐

