Разрешение доступа к Outlook Interop в проекте веб-форм - PullRequest
1 голос
/ 06 марта 2012

У меня проблема с разрешениями IIS и сборкой взаимодействия Microsoft Outlook 2010 с использованием проекта веб-форм.

Я создал концептуальный проект для проверки возможности использования сборки взаимодействия Microsoft Outlook в определеннойСитуация, с которой мне порученоДемонстрационный проект работал отлично, и у меня не было проблем.Сейчас я пытаюсь интегрировать его в наш основной проект и сталкиваюсь с проблемой разрешения IIS.Мой веб-сайт работает в IIS 7 локально.В диспетчере IIS я нажимаю Пулы приложений -> Мой веб-сайт -> Расширенные настройки.В этом окне у меня есть пользовательское удостоверение, называемое «файловая папка» с паролем («файловая папка» была создана для безопасного доступа к изображениям веб-сайта, файлам PDF и т. Д. На сервере сети разработки).Я скопировал сборку взаимодействия Outlook в нашу общую папку общих сборок вместо того, чтобы ссылаться на нее из GAC.Я дал сборке все разрешения для IUSER, NETWORK SERVICE, IIS_WPG, ASP.NET и файлообменника.Я получаю следующую ошибку во время выполнения:

Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-
C000-000000000046} failed due to the following error: 80070005 Access is denied.
(Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)). Description: An unhandled
exception occurred during the execution of the current web request. Please
review the stack trace for more information about the error and where it
originated in the code.

Exception Details: System.UnauthorizedAccessException: Retrieving the COM class
factory for component with CLSID {0006F03A-0000-0000- C000-000000000046} failed
due to the following error: 80070005 Access is denied. (Exception from HRESULT:
0x80070005 (E_ACCESSDENIED)).

ASP.NET is not authorized to access the requested resource. Consider granting
access rights to the resource to the ASP.NET request identity. ASP.NET has a
base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on
IIS 6 and IIS 7, and the configured application pool identity on IIS 7.5) that
is used if the application is not impersonating. If the application is
impersonating via <identity impersonate="true"/>, the identity will be the
anonymous user (typically IUSR_MACHINENAME) or the authenticated request user.

To grant ASP.NET access to a file, right-click the file in Explorer, choose
"Properties" and select the Security tab. Click "Add" to add the appropriate
user or group. Highlight the ASP.NET account, and check the boxes for the
desired access.

Я проверил журналы событий Windows и в разделе Журналы Windows -> Система, и у меня есть эта ошибка:

The machine-default permission settings do not grant Local Activation permission
for the COM Server application with CLSID {0006F03A-0000-0000-
C000-000000000046} and APPID Unavailable to the user BSoup\fileshare SID
(S-1-5-21-2999627215-1482540357-33300828-1019) from address LocalHost (Using
LRPC). This security permission can be modified using the Component Services
administrative tool.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2013
  • Запустите службы IIS.
  • Щелкните правой кнопкой мыши виртуальный каталог вашего приложения и выберите Свойства.
  • Откройте вкладку Безопасность каталога.В разделе «Анонимный доступ и управление аутентификацией» нажмите «Редактировать».
  • Убедитесь, что флажок «Анонимный доступ» не установлен, а встроенная проверка подлинности Windows является единственным выбранным флажком.
  • Настроить ASP.NET для использования проверки подлинности Windows с олицетворением, используйте следующую конфигурацию в WebConfig.

    <system.web>  
        <authentication mode="Windows"/> 
        <identity impersonate="true"/>
    </system.web>
    
0 голосов
/ 07 марта 2012

Проведя немного больше исследований, я решил, что использование сборки взаимодействия - плохой выбор.Как заявил Алексей, он не предназначен для использования по сети.

...