2015-07-02 125 views
0

有簡歷上傳的Web應用程序,我想上傳 我只有2種類型的個人簡歷(文字& PDF) 我在用的iTextSharp的 & & Microsoft.Office.Interop.Word中獲取文本,並將其工作正常,但在服務器不工作我如何從服務器上的文件獲取文本?

string Mainer(string pathfile) 
     { 


     Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); 

     string totaltext = ""; 
     try 
     { 

      object miss = System.Reflection.Missing.Value; 
      // object truee = True; 
      object oTrue = false; 
      object path = pathfile; 
      object readOnly = true; 
      object pass = ""; 
      Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, pass, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref oTrue, ref miss, ref miss, ref miss, ref miss); 

      for (int i = 0; i < docs.Paragraphs.Count; i++) 
      { 
       totaltext += " \r\n " + docs.Paragraphs[i + 1].Range.Text.ToString(); 
      } 

      docs.Close(); 

      word.Quit(); 

      word = null; 
      docs = null; 
      GC.Collect(); 
      return totaltext; 
     } 
     catch (Exception e) 
     { 

      //((_Document)word).Close(); 
      //((_Application)word).Quit(); 
      word.Quit(); 

      word = null; 

      //ererorcount = ererorcount + 1; 
      //listerrors.Add(pathfile); 

      return totaltext; 

      // return ererorcount.ToString(); 
     } 


    } 

誤差

Error: 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)).

+0

你在pathfile中給物理路徑嗎? –

+0

我相信路徑和權限是好的,文件也存在@LitisqeKumar –

+0

溝互操作並使用[Open XML SDK](https://msdn.microsoft.com/en-us/library/office/bb448854.aspx )。只有安裝了Word,Interop才能正常工作。這就是這個詞的意思 - 與Word,應用程序的互操作性*。儘管在服務器環境中使用它是一個非常糟糕的主意,但是最終每個請求都會啓動一個Word實例。使用SDK,您可以在不安裝Word的情況下打開或創建Word文件 –

回答

1

微軟目前並不提倡,並不支持從任何無人蔘與的非交互式客戶端應用程序或組件(包括ASP,ASP.NET,DCOM和NT服務)中自動化Microsoft Office應用程序,因爲Office在運行Office時可能會出現不穩定的行爲和/或死鎖這個環境。

如果您正在構建一個在服務器端上下文中運行的解決方案,那麼您應該嘗試使用對於無人執行安全的組件。或者,您應該嘗試找到允許至少部分代碼運行客戶端的替代方案。如果您從服務器端解決方案使用Office應用程序,則該應用程序將缺少成功運行所需的許多必要功能。此外,您將面臨整體解決方案穩定性的風險。請閱讀Considerations for server-side Automation of Office文章中的更多內容。

您可以考慮使用Open XML SDK或爲服務器端執行而設計的任何其他第三方組件。有關更多信息,請參見Welcome to the Open XML SDK 2.5 for Office

相關問題