2013-08-27 16 views
2

Я использую Microsoft Office interop excel для создания файла excel в ASP.NET C#. Все работает, когда я запускаю приложение в Visual Studio 2010. Я опубликовал свое веб-приложение на своем сервере IIS, это нормально. Но когда я публикую приложение в Windows Server 2008 проблема обнаружена. Я искал много в Интернете, и я сделал следующее, но проблема все еще не решена:Microsoft Office Interop Excel не сохраняет на сервере Windows 2008

  1. Я установил идентичность пула приложений к LocalSystem. В run-> mmc -32 -> службах компонентов -> мой компьютер -> DCOM Config -> Microsoft Excel Application-> щелкните правой кнопкой мыши -properties окно: на вкладке «Идентификация» я проверил все переключатели в этом окне.

  2. Я установил идентичность пула приложений к NetworkService, и я еще раз проверил все предыдущие радио-кнопки.

  3. В RUN-> ММС -32 - услуги> компонент -> мой компьютер -> Настройка DCOM -> Microsoft Excel Application-> правой кнопкой мыши -properties окно: вкладка "Безопасность": Я дал Местный обед и Локальная активация для ИНТЕРАКТИВНЫЕ, СЕТЕВЫЕ СЛУЖБЫ, IIS_IUSRS пользователей.

    Вот мой код, который я использовал Interop Excel:

Excel.Application xlApp = new Excel.Application(); 
object misValue = System.Reflection.Missing.Value; 

Excel.Workbook xlWorkBook = xlApp.Workbooks.Add(misValue); 
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 

Workbook.SaveAs(Server.MapPath("DownloadFolder\\" + fileName + "_siyahi.xls")); 
+0

Есть несколько мест, в которых может возникнуть ошибка в веб-приложении. Какая строка это дает исключение, и можете ли вы опубликовать исключение? Кроме того, вы проверили, что учетная запись, запущенная в приложении, имеет правильные разрешения для записи в папку/файл? – squillman

+0

У меня есть ** полный контроль ** разрешение на запись папки для ** iis_iusrs, myCmputer \\ пользователей ** пользователей. Когда я устанавливаю ** идентификацию NetworkService ** в пул приложений, тогда возникает следующая ошибка: «Microsoft Excel не может открывать или сохранять любые документы, потому что недостаточно свободного места на диске или диске». –

+2

Возможно, вы захотите прочитать [эту статью] (http://support.microsoft.com/kb/257757#appliesto) о проблемах с Interop и ASP.NET. Цитата: «Microsoft в настоящее время не рекомендует и не поддерживает автоматизацию приложений Microsoft Office от любого бездействия, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может проявлять нестабильность поведение и/или тупик, когда Office запущен в этой среде ». –

ответ

0

я нашел мою проблему. В моем Windows Server системные настройки не были Соединенными Штатами, и я установил workheet.cells.NumberForm = "0.00" в моем коде.

xlWorkSheet.Cells[rowNumber, 4].NumberFormat = "0.00"; 

сервер не знает, этот формат номер. Я изменил формат в English (United States) и текущего местоположения в США и моя проблема решена.

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