#c# #wcf
#c# #wcf
Вопрос:
я использую службу WCF для отправки почты с вложением. в этой службе WCF я создаю один документ word, помещая некоторые данные в этот документ. и прикрепляю это как вложение к почте. при создании документа word я получаю следующую ошибку:
Сервер обнаружил ошибку при обработке запроса. Сообщение об исключении «Доступ запрещен».. Смотрите журналы сервера для получения более подробной информации. Трассировка стека исключений является:
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]amp; outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpcamp; rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpcamp; rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpcamp; rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
кто-нибудь, пожалуйста, может помочь в этом
Комментарии:
1. Лучше покажите код, касающийся жизненного цикла документа. Но запуск Word на любом сервере никогда не является хорошей идеей.
2. вы проверили права доступа к папке для пользователя, который запускает службу WCF? На всякий случай, если это проблема с разрешениями.
3. Контекст, в котором запущена служба (локальная система?), Вероятно, не имеет доступа к запуску word. Я предполагаю, что если вы запустите этот же код в приложении Windows, это сработает. Я думаю, все зависит от того, как он размещен.
4. В качестве предложения, если вы ориентируетесь хотя бы на Word2003, вам следует подумать о создании XML-документа, который можно легко сгенерировать «на лету», и вам не требуется установка Office на сервер.
Ответ №1:
Я нашел эту статью весьма полезной для msdn. Я думаю, что это из 2009, но я думаю, что это все еще точно в вашем сценарии. Это в основном объясняет, что Microsoft на самом деле не поддерживает такого рода вещи и альтернативы, которые вы можете сделать.
Если вы должны использовать подобную автоматизацию в своей службе wcf, я бы рекомендовал запустить службу под учетной записью, которая имеет доступ к запуску word. Я не слишком знаком с wcf, но я предполагаю, что это можно сделать.