Я использую Windows XP_SP_3 и IIS 5 (локальный хост), создаю сайт с asp.net4 и использую этот код:
Application appClass = new Application();
Document wordDoc = appClass.Documents.Add(Server.MapPath("~") + @"Files\tmp.docx");
wordDoc.SaveAs(@"e:\hp\Files\" + TextBox1.Text + ".docx");
wordDoc.Close();
если запустить сайт с VS2010, все в порядке. но при запуске с IIS 5 (локальный хост) покажите эту ошибку:
Получение фабрики классов COM для компонента с CLSID {000209FF-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80070005 Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)).
Описание: необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительных сведений об ошибке и ее происхождении в коде.
Сведения об исключении: System.UnauthorizedAccessException: получение фабрики классов COM для компонента с CLSID {000209FF-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80070005 Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)).
ASP.NET не авторизован для доступа к запрошенному ресурсу. Рассмотрите возможность предоставления прав доступа к ресурсу удостоверению запроса ASP.NET. ASP.NET имеет базовое удостоверение процесса (обычно {MACHINE} \ ASPNET в IIS 5 или сетевая служба в IIS 6 и IIS 7, а также настроенное удостоверение пула приложений в IIS 7.5), которое используется, если приложение не олицетворяет себя. Если приложение олицетворяет через, удостоверением будет анонимный пользователь (обычно IUSR_MACHINENAME) или аутентифицированный пользователь запроса.
Чтобы предоставить ASP.NET доступ к файлу, щелкните файл правой кнопкой мыши в проводнике, выберите «Свойства» и перейдите на вкладку «Безопасность». Щелкните Добавить, чтобы добавить соответствующего пользователя или группу. Выделите учетную запись ASP.NET и установите флажки для желаемого доступа.
Ошибка источника:
Необработанное исключение было создано во время выполнения текущего веб-запроса. Информацию о происхождении и местонахождении исключения можно определить с помощью трассировки стека исключений ниже.
Я открываю Component Service ›Computer› щелкните правой кнопкой мыши в My Computer ›выберите Properties› COM Sucrity ›Launch and Activation ...› Edit Default ›Add› Advanced ›
Я не нахожу пользователя IIS (IIS_IUSRS). так что выберите ASP.NET и ОК и проверьте локальный запуск и удаленный запуск, локальную активацию и удаленную активацию.
оставьте систему и снова запустите сайт с iis5. но снова покажите предыдущую ошибку!