كيف يمكنك فتح ملف على InfoPath 2007 برمجيا من خدمة؟

StackOverflow https://stackoverflow.com/questions/303325

  •  08-07-2019
  •  | 
  •  

سؤال

وأنا أحاول فتح ملف على InfoPath 2007 برمجيا من خدمة Windows، ولكن أنا الحصول على الخطأ التالي:

<اقتباس فقرة>   

وSystem.Runtime.InteropServices.COMException   (0x80043000): لا يمكن فتح InfoPath ل   الملف التالي: C: \ مسار \ datafile.xml.   لا تخزين غير كافية ل   إكمال هذه العملية.

وهذا الملف يفتح بشكل صحيح في المصمم على InfoPath. كما تدير برمجيا كتطبيق WinForms عناصر. ولكن عند محاولة تشغيل كخدمة ويندوز، وينسف.

ولقد تشاورت جوجل الاقوياء. نتائج الرئيسيان أن أعود هي XML إما تالف (وليس السبب، كما فتح النموذج بشكل صحيح يدويا) أو أن تفعل شيئا مع محاولة الوصول إلى قاعدة البيانات (التي لا أقوم).

لا أحد يعرف كيفية القيام بذلك؟ هل هناك أذونات أحتاج إلى تعيين على الخدمة؟

تحديث:

وفقا لطلب اندرس، وهنا هو رمز. لاحظ أن هذا قد لا يكون رمز المحدد كنت أعمل عليه منذ 6 أشهر عندما نشرت لي أصلا على هذا السؤال. لدينا منذ انتقلت إلى استخدام 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 { }
}
هل كانت مفيدة؟
scroll top