2013-07-09 3 views
2

Я просто пытаюсь прочитать текст из файла Word, используя мое веб-приложение. Он отлично работает в моей локальной системе, и после того, как я разместил его на сервере, файл слова не открывается и его исключение null.Открытие файла Word в C#

Это, как я делаю,

Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.Application(); 
Microsoft.Office.Interop.Word.Document WordDoc = new Microsoft.Office.Interop.Word.Document(); 
object DocNoParam = Type.Missing; 
object DocReadOnly = false; 
object DocVisible = false; 

WordDoc = WordApp.Documents.Open(BO.Misc.Settings.AttachementPathRelative + fileName, 
              ref DocNoParam, 
              ref DocReadOnly, 
              ref DocNoParam, 
              ref DocNoParam, 
              ref DocNoParam, 
              ref DocNoParam, 
              ref DocNoParam, 
              ref DocNoParam, 
              ref DocNoParam, 
              ref DocVisible, 
              ref DocNoParam, 
              ref DocNoParam, 
              ref DocNoParam, 
              ref DocNoParam, 
              ref DocNoParam); 

     WordDoc.Activate();    

Я установил офис на сервере, и я дал ссылку на Interop на мой веб-приложения, а также. Я не знаю, почему я получаю ошибку. Может кто-нибудь помочь мне здесь. Заранее спасибо.

Я получаю ошибку в WordDoc.Activate(), проблема в том, что в моей системе не установлена ​​Visual Studio, поэтому я не могу ее отладить. Его бросал мне исключение говоря System.NullReferenceException: Object reference not set to an instance of an object.

И стек трассировки [NullReferenceException: Object reference not set to an instance of an object.] Profile_CreateProfile.btnResumeUpload_Click(Object sender, EventArgs e) in d:\Apps\App1\Employee\AddEmployee.aspx.cs:411 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +153 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3690

+3

Сведения об отправлении исключения: сообщение, тип, stacktrace, исключение исключения кода исключения кода. –

+1

Это не решение вашей проблемы, но я думаю, вы должны использовать 'Path.Combine (...)' вместо 'BO.Misc.Settings.AttachementPathRelative + fileName'' System.IO.Path.Combine (BO.Misc.Settings .AttachementPathRelative, fileName). 'Path.Combine (..)' более надежный. – mortb

+0

@defaultlocale Я обновил свой вопрос, вы можете проверить его сейчас? – shanish

ответ

2

Это не рекомендуется использовать режим Interop в серверной среде (например, приложение ASP), как «Управление может проявлять неустойчивое поведение и/или тупиковый когда офис запускается в этой среде ». (Read this for more details).

Вы должны использовать OpenXML для создания текстовых документов на сервере.

+0

спасибо Райан, я проверю. – shanish

Смежные вопросы