Click here to Skip to main content
15,742,759 members
Please Sign up or sign in to vote.
2.00/5 (3 votes)
See more:
Hi,

Web application Microsoft.Office.Interop.Word not working on the server.But it works fine in local machine. The application hosted in arvixe. I want to show a document(which is word, PDFs...etc) in a text box. The working in local machine is smooth but in live it is empty text box.The application developed in .Net.My VB.Net code for this purpose is given below.

VB
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

       If Not Session("r_id") Is Nothing Then

           iframe.Visible = False
           Text_resume.Visible = False
           Dim resume_name As String = Session("r_id") 'Server.HtmlEncode(Request.QueryString("r_id"))
           Dim filepath As String = resume_name
           Dim fileextention As String = Path.GetExtension(filepath)
           If Not fileextention = ".pdf" Then
               Text_resume.Visible = True
               Dim realpath As String = MapPath("../jobseeker/Resume/" + filepath)
               readFileContent(realpath)
           Else
               Dim realpath As String = "../jobseeker/Resume/" + filepath
               iframe.Visible = True
               iframe.Disabled = True
               iframe.Attributes.Add("src", realpath & "?docId=456#toolbar=0")
           End If

       End If
       lbl_check.Text = _path

   End Sub
   Private Sub readFileContent(ByVal path As String)
       Try
           Dim wordApp As New ApplicationClass()
           Dim file As Object = path
           _path = path
           Dim nullobj As Object = System.Reflection.Missing.Value
           Dim doc As Microsoft.Office.Interop.Word.Document = wordApp.Documents.Open(file, nullobj, nullobj, nullobj, nullobj, nullobj, _
           nullobj, nullobj, nullobj, nullobj, nullobj, nullobj, _
           nullobj, nullobj, nullobj, nullobj)
           doc.ActiveWindow.Selection.WholeStory()
           doc.ActiveWindow.Selection.Copy()
           Dim sFileText As String = doc.Content.Text
           doc.Close(nullobj, nullobj, nullobj)
           wordApp.Quit(nullobj, nullobj, nullobj)
           Text_resume.Text = sFileText.ToString()
       Catch ex As Exception
           'alert.show_mssg(panel_mssg, lbl_mssg, "mssg_fail", "Your enquiries has been inserted successfully")

       End Try
   End Sub


Thanking in Advance.

Muhammed Haris K
Posted
Updated 2-Oct-12 1:12am
v5
Comments
NeonMika 2-Oct-12 3:42am    
Is any exception thrown?
Is office installed on the machine? We had the problem that we had the .dll, but the dll is not working without an office installed.

You cannot use the Interop libraries without Office installed. This is a requirement from Microsoft, so even if you figured out how to do it you would be violating the EULA. There are alternatives (Aspose, OOXML SDK, etc.) that might be useful but to use Interop on the server, you need to install Office.

References:
http://stackoverflow.com/questions/4724765/manipulating-word-documents-on-server-without-office-installed-asp-net[^]
http://social.msdn.microsoft.com/Forums/is/innovateonoffice/thread/973ce94f-5235-4be9-a2b1-51ba7d35e1f3[^]
 
Share this answer
 
Is there a thrid party library for MS office that is free of cost?
 
Share this answer
 
Comments
OriginalGriff 21-Feb-23 12:38pm    
No. MS Office is proprietary and requires MS office installed in order to interop.

There is OpenOffice though.
CHill60 22-Feb-23 4:57am    
If you want to ask a question then use the red "Ask a Question" link at the top of this page (although this question is off-topic for this forum)
Alternatively, if you wanted to pose this question to the poster of a solution then use the "Have a Question or Comment?" link next to the solution
Don't post questions or comments as a "Solution" to another member's post

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