CDO.Message的CreateMHTMLBody超时问题:如何延长4分钟限制?
解决CDO.Message.CreateMHTMLBody超时问题
你遇到的是CreateMHTMLBody方法的默认超时限制问题——这个方法默认的HTTP请求超时时间是240秒(也就是4分钟),所以加载5分钟的报表会触发中断异常。可以通过修改CDO的配置参数来延长超时时间,具体操作如下:
- 调整超时配置:在调用
CreateMHTMLBody前,给CDO.Message的配置对象设置更长的超时值(单位为秒),示例代码如下:
var message = new CDO.Message(); var config = message.Configuration; // 设置超时为300秒(5分钟),可根据实际需求调整更大的值 config.Fields["http://schemas.microsoft.com/cdo/configuration/timeout"].Value = 300; // 可选:确保请求获取最新的内容版本 config.Fields["http://schemas.microsoft.com/cdo/configuration/urlgetlatestversion"].Value = true; // 保存配置更改 config.Fields.Update(); // 执行MHTML转换 message.CreateMHTMLBody(url);
如果你的报表生成时间可能超过5分钟,直接把Timeout的值设为更大的数字即可(比如600秒对应10分钟)。另外要注意,运行代码的服务器网络环境要稳定,避免因网络问题提前中断请求。
内容的提问来源于stack exchange,提问作者witkacy1986
相关产品推荐
相关产品推荐

