Мы создаем надстройку Outlook 2007 с помощью VSTO.У нас есть код в логике инициализации надстройки, который извлекает MAPIOBJECT, связанный с Application.Session.Код, о котором идет речь, выглядит следующим образом:
public partial class ThisAddIn
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
try
{
var addIn = Globals.ThisAddIn;
var application = addIn.Application;
var mapiObject = application.Session.MAPIOBJECT;
}
catch (Exception e)
{
// HANDLE ERROR
}
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
// ...
}
// Other VSTO generated code
}
Этот код работает как брелок в большинстве случаев.Однако при попытке получить доступ к свойству MAPIOBJECT из свойства Session мы сталкиваемся со следующей ошибкой:
System.Runtime.InteropServices.COMException (0x86220009): Cannot complete the operation. You are not connected.
at Microsoft.Office.Interop.Outlook._NameSpace.get_MAPIOBJECT()
at MyTestAddIn.ThisAddIn.ThisAddIn_Startup(object, System.EventArgs) in C:\foo\MyTestAddIn\ThisAddIn.cs:line 19
Мы не можем понять, почему код работает большую часть времени, но иногда терпит неудачу.Мы подумали, что эта проблема связана с прерыванием работы сети / работой пользователя в автономном режиме.Мы попробовали несколько комбинаций состояний соединения с преднамеренной работой в автономном режиме из Outlook, чтобы отключить сетевой кабель, когда Outlook собирается загрузить надстройку.Но мы не смогли воспроизвести проблему.
Любая помощь приветствуется.