2012-02-03 14 views
0

У меня есть приложение ASP.net, которое откроет внешний вид для определенной функции. пример кода:Open outlook в ASP.Net

Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application(); 
     Microsoft.Office.Interop.Outlook.NameSpace oNS = oApp.GetNamespace("mapi"); 
     oNS.Logon(null, null, true, true); 

     Microsoft.Office.Interop.Outlook.MailItem oMail = (Microsoft.Office.Interop.Outlook.MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); 
     oMail.Subject = "Sample Subject"; 
     oMail.To = "[email protected]"; 
     oMail.HTMLBody = "Sample Paragraph"; 
     oMail.Display(false); 

     oApp = null; 
     oNS = null; 
     oMail = null; 

Это работает нормально, когда я запускаю его через Visual Studio. После этого я публикую его в IIS 5.1, так что в основном я использую Windows XP.

Теперь я запустить его с помощью опубликованной версии на IIS, и я получил ошибку «Извлечение COM фабрики классов для компонента с CLSID {0006F03A-0000-0000-C000-000000000046}».

Я исправил это, поставив олицетворение в файле web.config. Теперь приложение успешно работает без ошибок.

Но проблема теперь в том, что она, похоже, не открывает внешний вид, я пробовал отлаживать ее с помощью attach для процесса на aspnet_wp.exe и смог подключиться к точке останова и, казалось, прошел через все строки, не выдавая ошибку, но я просто не открываю Outlook.

Я не могу что-то настроить на уровне IIS? Спасибо!

+1

Каждый раз, когда я вижу, что «MS Office» работает на сервере, я должен плакать. Не делай этого. Office не должен запускаться на серверах. В частности, с Outlook вы должны иметь дело с профилями и т. Д. Если вы хотите отправить по электронной почте классы SmtpClient и MailMessage. – gsharp

+0

Ха-ха, это правда, я думаю, что вы справлялись с этим раньше, и вы знаете его боль на голове. В любом случае, спасибо за ваше предложение, и на самом деле это то, что я пытаюсь сделать прямо сейчас :) –

+0

Хороший выбор :-) SmtpClient очень просто. На Google есть тонны образцов. Получайте удовольствие, отправляя электронные письма. – gsharp

ответ

0

Попробуйте запустить пул приложений веб-приложения под пользователем, имеющим разрешения доступа. или даже вы можете попытаться перезапустить iis и попробовать. это в основном вызывает из-за проблем безопасности concenrend. когда я googled этот вопрос, я получил это Aspnet Security contexts

предложения могут помочь решить проблему.

  1. Введите учетные данные, удостоверяющие личность в WebConfig или в Iis
  2. папке Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files дать права на запись.
+0

1. я положил это в WebConfig тождество IMPERSONATE = «истина» UserName = «» пароль = «<пароль моей учетной записи» /> 2. сделано и Он не работает .. и есть нет пула приложений на IIS 5.1, это не должно быть так, потому что оно не вызывает каких-либо исключений в отношении безопасности –