1

当我尝试打开附件 .xsn 文件时收到以下错误消息。

“Infopath 无法创建新的空白表单。该文件不是有效的 XML 文件。”

我用过

Response.ContentType = "application/x-microsoft-InfoPathFormTemplate";
Response.AppendHeader("Content-Disposition", string.Format("attachment; filename=filenam1.xsn");

你能告诉我这里有什么问题吗?

谢谢你。

4

1 回答 1

0

这就是问题所在。

当您使用 IE(在我的情况下为 IE 10)时,该文件从未真正下载过。相反,IE 将 InfoPath 作为子进程生成,提供主机页面的 URL 作为参数。

在此处输入图像描述

因为您使用的是 Response.TransmitFile(或类似文件),所以主机页面的 URL 将与表单模板的 URL 不匹配。您收到无效的 xml 错误,因为 InfoPath 正在尝试将网页的 HTML 解析为表单模板。

InfoPath 很糟糕

从 IE 的角度来看,您对此无能为力。从链接:

3) 在 IE 中,决定如何显示内容的方法取决于 mime 类型、文件的第一个字节、扩展名和注册表设置。如果您的内容看起来像 HTML,那就是它的显示方式。

5)这个问题没有已知的解决方法,所以你必须忍受它。

6) Content-Disposition 对问题没有影响。

如果可能的话,我的建议是通过 HTTP 处理程序或其他机制向表单模板公开一个实际的 URL,除非这里有人知道更好的解决方案。

于 2012-12-04T21:34:46.337 回答