-1

これは Visual Studio のサーバーでは正常に動作していますが、サーバーが IIS に変更されると、次のようにスローされます。

IClassFactory からの CLSID {00020906-0000-0000-C000-000000000046} を持つ COM コンポーネントのインスタンスの作成は、次のエラーのために失敗しました: 8001010a。

        object initial_limits = 0;
        object missing = System.Reflection.Missing.Value;
        object Visible = true;
        object openfilename = @"C:\letters\Templates\" + template_src_dropdown.SelectedValue + ".doc";
        current_date = DateTime.Now.Date.ToString("dd/MM/yyyy");

        object savefilename = @"C:\letters\Letters\" + reference_id + ".doc";


        ApplicationClass WordApp = new ApplicationClass();
        Document WordDoc = new Document();
        Document docActive = null;
        WordDoc = WordApp.Documents.Add(ref missing, ref missing, ref missing, ref missing);


        //Document 



        //WordDoc = WordApp.Documents.Open(ref openfilename, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);          

        /*
        if (new_file_chkbox.Checked == true)
        {

            WordDoc = WordApp.Documents.Add(ref missing, ref missing, ref missing, ref missing);
        }
        else
        {
            WordDoc = WordApp.Documents.Open(ref openfilename, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
        }
        */


        try
        {


            docActive = WordApp.ActiveDocument;
            Bookmark bookmark1;
            bookmark1 = docActive.Bookmarks.Add("word_content", ref missing);
            Range rng_bookmark1 = bookmark1.Range;

            rng_bookmark1.Text = reference_id + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + current_date;
            rng_bookmark1.Text += employee_list_word + vendor_list_word;
            rng_bookmark1.Text += "\n" + subject_txtbox.Text + "\n\n";
            rng_bookmark1.Text += "\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + designation_dropdown.SelectedValue + "\n";
            rng_bookmark1.Text += "\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + department_dropdown.SelectedValue + "\n";
            rng_bookmark1.Text += cc_employee_list_word + cc_vendor_list_word;



            try
            {
                WordDoc.SaveAs(ref savefilename, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
                WordApp.Visible = true;
            }

            catch (Exception ex)
            {
                Label1.Text = ex.Message;
                //MessageBox.Show(ex.Message);
            }

            finally 
            {
                WordApp.Quit(ref missing, ref missing, ref missing);
             }
4

1 に答える 1

1

VS サーバーは開発サーバーで、IIS は展開サーバーです。これは、Web アプリケーションではデスクトップ アプリケーションの機能を利用できないことを理解するのは簡単です。その場合
、マルチユーザーになります... OpenXml を使用する方が良い ... openXml の良い例は、Code project.com で提供されています。

于 2011-09-26T09:55:15.813 に答える