2012-12-04 70 views
1

我在嘗試打開附件.xsn文件時收到以下錯誤消息。無法打開.xsn文件

「Infopath無法創建新的空白表單,該文件不是有效的XML文件。」

我用

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

能否請你讓我知道什麼可能是錯在這裏?

謝謝。

+0

你期待什麼行爲?對於InfoPath設計人員來渲染附加文檔? – mwilson

+0

是的,我可以從我的磁盤上打開文件Infopath設計器。上傳後,我無法打開文件。 – nav100

+0

我現在無法對此進行原型設計,但似乎InfoPath Filler應用程序正在被觸發而不是Designer,因此出現預期xml文件的消息。也許ContentType的問題? – mwilson

回答

0

這是問題所在。

當您使用IE瀏覽器(IE 10,在我的情況下),該文件從未實際下載。相反,IE會將InfoPath作爲子進程產生,並將主頁的URL作爲參數提供。

enter image description here

因爲你使用Response.TransmitFile(或類似),主機頁面的URL將不匹配的表單模板的URL。您收到無效的xml錯誤,因爲InfoPath正在嘗試將網頁的HTML解析爲表單模板。

InfoPath is terrible

There's very little you can do about this, from the IE perspective,它出現。從鏈接:

3)在IE瀏覽器中,決定如何顯示內容的方法查看MIME類型,文件的第一個字節,擴展名和註冊表設置。如果您的內容看起來像HTML,那麼它將如何顯示。

5)這個問題沒有已知的解決方法,所以你必須忍受它。

6)Content-Disposition對問題沒有影響。

我的建議是,如果可能的話,通過HTTP處理程序或其他機制公開一個實際的URL到表單模板,除非有人知道更好的解決方案。