Windows サービスからプログラムで InfoPath 2007 ファイルを開こうとしていますが、次のエラーが発生します。
System.Runtime.InteropServices.COMException (0x80043000): InfoPath は次のファイルを開くことができません: C:\path\datafile.xml。この操作を完了するのに十分なストレージがありません。
このファイルは、InfoPath デザイナーで正しく開きます。また、プログラムによって WinForms アプリケーションとして実行されます。しかし、Windows サービスとして実行しようとすると、爆発します。
私は強力な Google に相談しました。返される 2 つの主な結果は、形式が正しくない XML (フォームが手動で正しく開くため、原因ではありません) か、データベースへのアクセス試行に関連するもの (私は行っていません) のいずれかです。
誰もこれを行う方法を知っていますか? サービスに設定する必要があるアクセス許可はありますか?
アップデート:
Anders の要求に従って、コードは次のとおりです。これは、最初に質問を投稿した6か月前に作業していた正確なコードではない可能性があることに注意してください。その後、XtraReports の使用に移行しました。これは、XtraReports の方が作業がはるかに簡単で、これらの不可解なエラーが少ないためです。ただし、この質問を解決して、回答が必要な人のために解決したいと思います。
Microsoft.Office.Interop.InfoPath.Application infoApp = new Microsoft.Office.Interop.InfoPath.Application();
try
{
Microsoft.Office.Interop.InfoPath.XDocument xDoc = null;
xDoc = infoApp.XDocuments.Open(fileName, (int)Microsoft.Office.Interop.InfoPath.XdDocumentVersionMode.xdUseExistingVersion);
xDoc.PrintOut();
infoApp.XDocuments.Close(0);
}
catch (Exception ex)
{
//handle error here
}
finally
{
try
{
if (infoApp != null)
infoApp.Quit(false);
}
catch { }
}