Click here to Skip to main content
15,885,216 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Hi all

I have come up with a situation which gives me an error like this while doing word doc page count once I deployed my web application to the server.
Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
When I try to upload a word doc and do the page count the above error appears.Here the code that I am using for count doc pages...
C#
else if (extension == ".DOC" || extension == ".doc" || extension == ".docx")
                                {

                                    Microsoft.Office.Interop.Word.ApplicationClass WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
                                    

                                    // give any file name of your choice. 
                                    string tempath = numberofpage;
                                    RegexOptions options = RegexOptions.None;
                                    Regex regex = new Regex(@"[ ]{2,}", options);
                                    tempath = regex.Replace(tempath, @"");
                                    tempath = tempath.Replace(" \\", "\\");
                                    object fileName = tempath;
                                    object readOnly = false;
                                    object isVisible = true;

                                    //  the way to handle parameters you don't care about in .NET 
                                    object missing = System.Reflection.Missing.Value;
                                    object objDNS = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;

                                    //   Make word visible, so you can see what's happening 
                                    //WordApp.Visible = true; 
                                    //   Open the document that was chosen by the dialog 
                                    Microsoft.Office.Interop.Word.Document aDoc = WordApp.Documents.Open(ref fileName,
                                                            ref missing, ref readOnly, ref missing,
                                                            ref missing, ref missing, ref missing,
                                                            ref missing, ref missing, ref missing,
                                                                ref missing, ref isVisible);

                                    Microsoft.Office.Interop.Word.WdStatistic stat = Microsoft.Office.Interop.Word.WdStatistic.wdStatisticPages;
                                    count = aDoc.ComputeStatistics(stat, ref missing);

                                    WordApp.Quit(ref objDNS, ref missing, ref missing);

                                    aDoc = null;

                                    WordApp = null;

                                    GC.Collect();

                                }
Posted
Updated 21-Nov-12 10:20am
v2
Comments
Sergey Alexandrovich Kryukov 21-Nov-12 16:31pm    
In what line..?
--SA
Member 9291223 21-Nov-12 17:00pm    
In this line:
Microsoft.Office.Interop.Word.ApplicationClass WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
Sergey Alexandrovich Kryukov 21-Nov-12 17:16pm    
Wow! Are you sure? This is strange... Incompatible Office version or interop assembly..?
--SA
Member 9291223 21-Nov-12 17:58pm    
But this works fine in local machine. Issues came after deployment

1 solution

Member 9291223 wrote:
But this works fine in local machine. Issues came after deployment.
OK, then it is no so strange. Office Interop works only when matching versions of Office an Office Interop assemblies are installed. (In your case, it could be just the Word-related part.) The fact the Interop Assembly was installed in your local GAC allowed you to build your product, and the fact that the matching version of Office is installed allowed you to run your application on a local machine. On the host where you deployed it, it could not be the case…

Logical, isn't it?

—SA
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900